我在C#4.0中使用PetaPoco Micro-ORM。如何检查var值为空值?
下面的代码从数据库中检索单个行:
var result = db.SingleOrDefault<TdUsers>(getUserQuery);
我想检查的结果是否包含任何行,以及是否为空。做这个的最好方式是什么?
我在C#4.0中使用PetaPoco Micro-ORM。如何检查var值为空值?
下面的代码从数据库中检索单个行:
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)
不返回空 - 如果结果没有返回任何值,则返回错误。然而,如果表达式不生成任何值,则返回空值,因此最好与if (result == null)
类型检查组合使用,正如您在此处使用的那样。
var v = result.ToList();
现在检查
if (v.Count > 0)
请参阅我对上述答案的评论。 –
你可以这样做:
result.ToList() // Convert result to a list
if (result.Any()) {
// result is not null
}
没有结果== null不会永远是假的..你认为什么是任何引用类型的默认值? –
@ParvSharma - 正确,调整。 –
:).................... –
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
}
你有什么? – sehe