这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会在第二个查询中使用正确的索引吗?
答案 0 :(得分:0)
除了语法之外,它们都是公平的。实体框架将仅在迭代时解析结果集,并且您基本上以不同的顺序应用同一组过滤器。