使用Entity Framework和SQL Server可以更好地执行哪种查询

时间:2015-07-29 08:39:56

标签: c# sql-server entity-framework entity-framework-6

这2个查询的性能是相同还是不同?

var results = ctx.Products
    .Where(x => x.Category.Name == "something")
    .Select(x => new {
        ProductId = x.Id, 
        ProductName = x.name, 
        CategoryName = x.Category.Name 
    })
    .ToList();

var results = ctx.Products
    .Select(x => new {
        ProductId = x.Id, 
        ProductName = x.name, 
        CategoryName = x.Category.Name 
    })
    .Where(x => x.CategoryName == "something")  
    .ToList();

SQL Server会在第二个查询中使用正确的索引吗?

1 个答案:

答案 0 :(得分:0)

除了语法之外,它们都是公平的。实体框架将仅在迭代时解析结果集,并且您基本上以不同的顺序应用同一组过滤器。