Joh*_*ell 4 c# linq entity-framework-4
我试图检查是否有任何结果是从实体框架查询返回之前采取行动,我正在尝试使用代码: -
var shoppingCartSessions = from c in context.ShoppingCartSessions where c.UserId == gUserID select c;
if (shoppingCartSessions.First() != null)
{
}
Run Code Online (Sandbox Code Playgroud)
但是我得到了错误
序列不包含任何元素
我已经检查了堆栈,发现我可以替换.First,.FirstOrDefault但是我想检查这是否是检查元素是否存在的正确方法.有没有更好的方法而不是尝试获取项目然后检查它?
用途Any():
var shoppingCartSessions = from c in context.ShoppingCartSessions
where c.UserId == gUserID
select c;
if (shoppingCartSessions.Any())
{
//not empty
}
Run Code Online (Sandbox Code Playgroud)
你试过检查了.Count() > 0吗?
编辑:
正如Mahmoud Gamal所说,使用Any()应该呈现略微更好的性能,因为它将执行EXISTS查询,而不是DB上的COUNT(),并且您最终不关心确切的数量.