2011-02-17 123 views
23

此問題涉及使用Linq和實體框架進行查詢優化。實體框架Linq查詢:.Where鏈vs &&

是否有鏈接.Where條款,並與實體framwork LINQ查詢單.Where條款使用&&之間有什麼區別?

例如:假設我有以下代碼:

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

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

在評估這些聲明,這產生相同的結果,並在LINQ和實體框架,評估它們一樣的方法?即兩者將具有相同的執行計劃,並因此具有相同的效率?

回答

21

是的,兩者都有相同的執行計劃。我添加了一個SQL跟蹤,並創建兩個相同的SQL語句

2

我總是與&&去,因爲它使代碼更易於閱讀。通過使用多個位置這會產生很多額外的噪音,並將注意力集中在邏輯上。

+3

它更容易閱讀,如果&&陳述短而少,但如果你鏈接在一起的多個較長的語句,在鏈接。哪裏更有意義和更具有可讀性。 – pkr298 2013-06-25 14:41:30