根据where子句在 linq表达式中的位置,性能是否存在差异? 看看下面的代码: dbContext.AnEntity.Include("AnotherEntity").Where(e = e.ID == id).ToList();dbContext.AnEntity.Where(e = e.ID == id).Include("AnotherEntity")
看看下面的代码:
dbContext.AnEntity.Include("AnotherEntity").Where(e => e.ID == id).ToList(); dbContext.AnEntity.Where(e => e.ID == id).Include("AnotherEntity").ToList();
这两个表达式的执行计划是相同还是不同?
从理论上讲,没有.实际上,您需要根据具体情况和提供商提供商进行测试.对于相关(但略有不同)的例子,在L2S中长期存在,.Where(谓词).FirstOrDefault()和.FirstOrDefault(谓词)(具有相同的语义)没有相同的行为(特别是相关的)身份映射快捷方式).我希望它会是一样的,特别是因为.Include(扩展结果集)是一个单独的类别比.Where(一个谓词)但是:验证的唯一方法是测试它并比较生成的SQL和表现.