gpt4 book ai didi

c# - yield return 缓慢的数据库调用

转载 作者:行者123 更新时间:2023-11-30 21:02:36 25 4
gpt4 key购买 nike

在我的 ASP 项目中有这样的代码,用 RegulationGroups 填充 rr

private IEnumerable<RegulationGroup> LoadRegulations(string moduleName)  
{
// database calls
yield return subLrg;
}

在单独的类中,代码循环多次

foreach (RegulationGroup rg in rr.RegulationGroups)     
{

}

每次代码在 RegulationGroups 上循环时,都会发生数据库调用。如何避免数据库调用?

我觉得我可以

  1. 取消 yield return 并使用 List
  2. 在列表中缓存 IEnumerable 并在我的模块中使用它,这样它就不会影响使用 LoadRegulations 方法的任何其他代码。

最佳答案

您可以通过具体化查询来避免它,例如通过使用 ToList():

var regulations = LoadRegulations("moduleName").ToList();

这是由于 yield 返回延迟执行的性质。

What is the purpose/advantage of using yield return iterators in C#?

关于c# - yield return 缓慢的数据库调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13352197/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com