我正在使用带有 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)
结合使用类型检查,正如您在此处使用的那样。
关于c# - 如何检查 var 的空值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10753661/