Linq Select和ToList之间的性能差异

问题描述 投票:0回答:1

以下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会解决这个问题,而后者会这样做吗?

c# linq
1个回答
2
投票

不,LINQ不会解决这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.