在使用&&amp ;;分解单个Where()时是否有任何性能成本?进入2个Where()调用(在EF中)?

时间:2011-10-05 17:16:22

标签: entity-framework

在实体框架中,执行此操作是否有任何性能成本......

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出现严重的性能损失则不行。

1 个答案:

答案 0 :(得分:3)

不存在性能成本 - EF Linq提供程序将两者映射到同一SQL查询。我个人觉得第一个版本更具可读性。