这些Linq-to-Entities表达式的效果是否相同?

时间:2015-11-11 21:11:17

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

鉴于entitiesIDbSet<Entity>,并且以下表达式为:

entities.Where(e => e.EntityID == 27).AsNoTracking().SingleOrDefault();

以下替代表达式同样有效(删除Where并将其条件置于SingleOrDefault):

entities.AsNoTracking().SingleOrDefault(e => e.EntityID == 27);

1 个答案:

答案 0 :(得分:0)

生成的SQL对于两个表达式都是相同的,所以是的,它们是相同的。您应该为您的项目选择一个约定并坚持下去。就个人而言,这只是我的观点,我更喜欢使用.Where(),因为我觉得它更容易阅读:

entities
    .Where(e => e.EntityID == 27)
    .AsNoTracking()
    .SingleOrDefault();