我有一个关于 LINQ 如何使用 foreach
对 Entity Framework 中的可查询实体执行的性能问题。
这样做更好(更快)吗
foreach(var thing in myentities.GetThemAll())
或
foreach(var thing in myentities.GetThemAll().ToList())
第一个示例是否会实际导致 myentities.GetThemAll().Count()
(+1?)访问数据库,每次收集一行?
最佳答案
如果您只需要遍历元素而不调用 ToList()
会更好。这是因为当我们调用它时,会立即触发相应的查询并创建一个内存集合。
如果您不调用 ToList
,您将避免创建用于保存查询结果的内存集合。
无论您采用第一种方式还是第二种方式,您都将往返数据库一次。
关于c# - 将 foreach 与 LINQ to Entities 一起使用时是否需要 ToList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26914674/