【问题标题】:Entity Framework Linq query: .Where chain vs &&实体框架 Linq 查询:.Where 链 vs &&
【发布时间】:2011-06-29 02:23:05
【问题描述】:

这个问题与使用带有实体框架的 Linq 进行查询优化有关。

链接 .Where 子句和在带有实体框架的 linq 查询的单个 .Where 子句中使用 && 之间有什么区别吗?

例如:假设我有以下代码:

var result = context.SomeEntity.Where(exp1).Where(exp2);

var result = context.SomeEntity.Where(exp1 && exp2);

在评估这些产生相同结果的语句时,linq 和实体框架是否以相同的方式评估它们?即,两者将具有相同的执行计划,因此同样有效?

【问题讨论】:

    标签: entity-framework linq ef-fluent-api


    【解决方案1】:

    是的,两者都有相同的执行计划。我添加了一个 sql 跟踪,并且都创建了相同的 SQL 语句

    【讨论】:

      【解决方案2】:

      我总是选择&&,因为它使代码更易于阅读。通过使用多个 Where 这将产生大量额外的噪音并分散逻辑的注意力。

      【讨论】:

      • 如果 && 语句较短且很少,则更易于阅读,但如果您将多个较长的语句链接在一起,则 .Where 链接更有意义且更具可读性。
      猜你喜欢
      • 2021-12-25
      • 2020-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多