以下两个查询是否等价?如果它们不相等,哪个性能更好?有什么方法可以查看查询的 sql 输出吗?
var query1 = items.Where(i => i.Enabled == true).Where(i => i.Name == "Bob");
var query2 = items.Where(i => i.Enabled == true && i.Name == "Bob");
最佳答案
正如安德鲁所说,这两个选项是等价的。一个实际有用的区别是您可以轻松地以编程方式在 Where
子句中生成条件。例如,如果您想排除某些名称:
var query = items;
for(string name in excluded)
query = query.Where(i => i.Name != excluded);
这是使用 &&
运算符编写查询时不容易完成的事情。
关于c# - 对 LinqToEntities 查询使用多个 .Where() 调用或 && 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3883445/