以下linq表达式都将导致相同的性能吗?
在我想起的场景中,我的表MyData。有25列和50,000行。我试图基于WHERE获取所有MyData记录。
var myData = _myDb.Entities<MyData>()
.ToList()
.Select(p => new { p.Name, p.Id })
.Where(y => y.DepartmentId = 1)
.OrderBy(x => x.Name);
vs
var myData = _myDb.Entities<MyData>()
.Where(y => y.DepartmentId = 1)
.Select(p => new { p.Name, p.Id })
.OrderBy(x => x.Name)
.ToList();
我认为由于语句中ToList()的顺序,第一个查询基本上将执行SELECT * FROM MyData
。昂贵。所有数据带回客户端,然后应用排序和过滤。
作为第二个选项,执行SELECT Name, Id FROM MyData WHERE DepartmentId = 1 ORDER BY Name
更好-在这种情况下,由SQL排序的数据集较小。
或者Linq会解决这个问题,而后者会这样做吗?
不,LINQ不会解决这个问题。