我使用PetaPoco微ORM用C#4.0。
下面的代码从数据库中获取单行:
var result = db.SingleOrDefault<TdUsers>(getUserQuery);
我想检查的结果是否包含任何行,以及是否为空。 做这个的最好方式是什么?
我使用PetaPoco微ORM用C#4.0。
下面的代码从数据库中获取单行:
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)
类型检查,因为您使用在这里。
var result = db.SingleOrDefault<TdUsers>(getUserQuery);
在上面的代码中的SingleOrDefault返回null淡水河谷或指定的泛型类型(它在运行时知道)。
序检查返回值是否为空或不是,你可以简单地使用
if(result!=null)
{
//do your code stuff
}
else
{
//stuff do be done in case where result==null
}
你可以这样做:
result.ToList() // Convert result to a list
if (result.Any()) {
// result is not null
}
var v = result.ToList();
现在检查
if (v.Count > 0)