2011-10-05 22 views
0

在實體框架,有沒有這樣做的任何性能損失...是否有任何性能成本將Where()與&&分成2個Where()調用(EF)?

var businesses = dbContext.Businesses.Where(x => x.Name.ToLower().StartsWith(name) && businessTypes.Contains(x.Type));

...這對?

var businesses = dbContext.Businesses.Where(x => x.Name.ToLower().StartsWith(name)).Where(x => businessTypes.Contains(x.Type));

我喜歡做後者,因爲它更容易閱讀,但如果有一個在生成的SQL嚴重的性能問題。

+0

在調試它時,可以看到生成的實際SQL。 – SQLMason

+0

是的,我知道 - 我想公開知道這些知識,還有人想知道答案。 –

回答

3

不,沒有性能成本 - EF Linq提供程序將兩者都映射到相同的SQL查詢。我個人認爲第一個版本更具可讀性。

相關問題