【问题标题】:Entity Error: The result of a query cannot be enumerated more than once实体错误:查询的结果不能被多次枚举
【发布时间】:2012-07-21 22:31:44
【问题描述】:

我在使用显示以下内容的实体框架时遇到错误: "一个查询的结果不能被枚举多次"

stackoverflow 上类似问题的解决方案,提到在我的查询中添加“.ToList()”,但这也无济于事。这是我的代码:

List<Kit> kits = new List<Kit>();

            var storedProc = db.GetOrderDetails(orderNumber).ToList();

            foreach (var proc in storedProc.ToList())
            {
                 [...content here]
            }

我的代码第一次成功查询。没有问题。当我使用新的“orderNumber”重新单击提交按钮时,它会引发此错误。

我也尝试过其他解决方案,例如 .AsEnumerable().ToList(),但仍然没有运气。知道为什么会发生这种情况吗?

谢谢

【问题讨论】:

  • 你试过只在一个地方使用 ToList() 吗?在上面的代码中,您在 List 上调用 ToList()。不知道这是否是您的问题,但这是我尝试的第一件事。
  • 是的,我也试过了,但没有成功。
  • 能把GetOrderDetails的内容发一下吗?也许该方法非法存储和重复使用Queryable
  • 异常是在GetOrderedDetails行还是storedProc.ToList()行上抛出?

标签: asp.net-mvc entity-framework c#-4.0


【解决方案1】:

话说你在一个地方试过“.ToList()”,还有AsEnumerable().ToList()

很高兴这能有所帮助!
第 1 步:

var veryFirst = storedProc.First();

第 2 步:

var returnValues = veryFirst.ReturnCode;

然后试试看它是否有效?否则你可以尝试使用IQueryable

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多