c# - 对 LinqToEntities 查询使用多个 .Where() 调用或 && 条件

标签 c# entity-framework

以下两个查询是否等价?如果它们不相等,哪个性能更好?有什么方法可以查看查询的 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/

相关文章:

c# - C# 中的 MSMQ COM API

C#:字符串中的换行符和制表符

c# - 在 32 位 Windows XP 下的 C#4/T-SQL2008 应用程序中使用 Int64/bigint 而不是 Int32/int 的性能损失有多大?

sql - Entity Framework 6 Update from Database 忽略已删除的列,类型更改

c# - .Net Microframework 中的自定义事件

c# - 为什么使用 double.Parse 然后转换为 float ?

entity-framework - 在新保存的对象上(从保存它们的上下文中获取它们时),延迟加载不起作用

c# - AddOrUpdate 不修改 child

c# - 从代码调用时Mysql存储过程结果不同

c# - 如何以编程方式在 Outlook 搜索文件夹上设置自定义图标? (即 Outlook 文件夹 SetCustomIcon)