C# 使用实体框架和SQL Server哪个查询性能更好

C# 使用实体框架和SQL Server哪个查询性能更好,c#,sql-server,entity-framework,entity-framework-6,C#,Sql Server,Entity Framework,Entity Framework 6,这两个查询的性能相同还是不同 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 result

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

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会在第二个查询中使用正确的索引吗?

除了语法之外,它们在所有方面都是等价的。实体框架将只在迭代时解析结果集,并且基本上应用了相同的过滤器集,只是顺序不同

除了语法,它们在所有方面都是等价的。实体框架将只在迭代时解析结果集,并且基本上应用了相同的过滤器集,只是顺序不同

如果结果sql语句不同,请尝试查看它们,在探查器中运行它们,并比较运行时间。我已使用express profiler在本地计算机中对1000条记录进行了测试。它们在运行时间上几乎相同。我需要知道它们是否使用相同的索引来确保。如果结果sql语句不同,请尝试查看它们,在探查器中运行它们并比较运行时间。我已使用express profiler在本地计算机上对1000条记录进行了测试。它们在运行时间上几乎相同。我需要知道他们是否使用相同的索引来确保。