2

我有一个返回的网络服务List<SampleClass>。我使用 LINQ-to-SQL 从数据库中获取数据,IEnumerable<SampleClass>.然后转换IEnumerable<SampleClass>List<SampleClass>.

LINQ-to-SQL 操作性能还可以,但是要花一些时间来做操作IEnumerable<SampleClass>List<SampleClass>是否有任何解决方案可以从 to 获得最佳IEnumerable<SampleClass>性能List<SampleClass>

我从我的数据库中读取了 3000 多条记录。

谢谢

4

1 回答 1

11

IEnumerable to List 需要一些时间来完成操作。

您收到延迟的原因是,当您这样做时ToList,即执行实际查询并从数据库中获取记录的时间。

这称为延迟执行

var query = db.yourTable.Where(r=> r.ID > 10);
var List = query.ToList(); //this is where the actual query gets executed. 

ToList当您使用,等迭代查询时ToArrayCount()就是执行实际查询的时间。

是否有任何解决方案可以从 IEnumerable 到 List 获得最佳性能?我从我的数据库中读取了 3000 多条记录。

如果不改进查询,不,你不能。但是你真的需要获取 3000 条记录吗,你可以考虑使用SkipTake

于 2012-11-22T09:30:34.713 回答