Linq表达式返回null而不是空集

时间:2010-11-18 20:46:44

标签: vb.net linq lambda

我发现这个奇怪的问题。当我这样做>

activities.Where(Function(a) (Not a.IsDeleted And a.ParentId = 100)

它返回内存查询&当我尝试打开它时,它抛出一个没有设置异常的对象。只有当没有满足条件的物品时才会发生这种情况。它不应该返回空集吗?

项目满足条件时,它会返回一个列表&一切都很好。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

看起来您可能会因使用逻辑And而受到攻击。您可能需要AndAlso来缩短您的逻辑表达式:

Not a.IsDeleted AndAlso a.ParentId = 100

通过使用AndAlso,只有在第一部分为真时才会评估第二部分。