【问题标题】:Multiple `Where()` vs. single `Where()` [duplicate]多个`Where()`与单个`Where()` [重复]
【发布时间】:2016-04-05 02:09:27
【问题描述】:

是:

var records = context.Records
                     .Where(r => r.EmployeeId == id)
                     .Where(r => r.Date >= startDate)
                     .Where(r => r.Date <= enddate)
                     .ToList();

无论如何都比:更好、更差或不同:

var records = context.Records
                     .Where(r => r.EmployeeId == id
                            && r.Date >= startDate
                            && r.Date <= enddate)
                     .ToList();

第一个似乎更容易阅读,所以如果没有区别,那么我会使用它来避免使用大量 &amp;&amp;

【问题讨论】:

  • 只是想一想,你可以检查生成的Entity SQL来检查两个linq有什么区别。从可读性来看,第二种方法似乎更好。
  • 我会说第一种方法的可读性更好。

标签: entity-framework linq lambda linq-to-entities


【解决方案1】:
var records = context.Records
                     .Where(r => r.EmployeeId == id
                            && r.Date >= startDate
                            && r.Date <= enddate)
                     .ToList();

更好。更少的代码和节省时间。两者都得出相同的结果。这只是编码风格的问题。

【讨论】:

  • 此外,包含所有条件的单个 where 语句更好,因为您只迭代集合一次。多个 where 语句多次迭代集合......这更慢并且使用更多处理来完成相同的工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-11-29
  • 1970-01-01
  • 2016-04-10
  • 1970-01-01
  • 1970-01-01
  • 2014-10-09
  • 1970-01-01
相关资源
最近更新 更多