为什么 linq 仍然要检查第二个表达式?
.Where(t => String.IsNullOrEmpty(someNullString) || t.SomeProperty >= Convert.ToDecimal(someNullstring))
通常的解决方法是什么?
更新:
当然,它是关于 LINQ to SQL 的。它无法转换为 SQL。
最佳答案
是 .Where
在 Table<>
上使用?
如果是这样,那么在获取任何数据之前,它必须将 LINQ 转换为 SQL,为此它必须转换 string
进入 decimal
.它还没有尝试实际执行比较,它正在尝试构建检索数据所需的结构。
关于c# - 为什么 lambda 中的短路不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1079556/