我正在使用带有 C# 4.0 的 PetaPoco Micro-ORM。
下面的代码从数据库中检索一行:
var result = db.SingleOrDefault<TdUsers>(getUserQuery);
我想检查结果是否包含任何行,以及是否为空。做这个的最好方式是什么?
if (result == null || result.Count() == 0) {
// Checks whether the entire result is null OR
// contains no resulting records.
}
我认为问题不在你的检查中null
,因为linq是延迟加载的。您的错误在于使用表达式db.SingleOrDefault<TdUsers>(getUserQuery);
.
.Single<T>(expression)
不返回 null - 如果结果不返回任何值,则会出错。.SingleOrDefault<T>(expression)
但是,如果表达式没有产生任何值,则返回空值 - 因此最好与if (result == null)
类型检查,正如您在这里使用的那样。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)