当我到达 db.GetLabelComponentsByLabelID(LabelIDs.ElementAt(i).Value.ToString()).ToList()
我收到以下异常:The Result of a Query Cannot be Enumerated More than Once
我试图通过像 answer 建议的那样调用 ToList() 来更改 LabelComponents。

long? GroupID = db.GetGroupIDByName("PrintTest").SingleOrDefault();
ObjectResult<long?> LabelIDs = db.GetLabelIDSFromGroupingsByGroupID(GroupID.ToString());
for (int i = 0; i < LabelIDs.Count(); i++)
{
    var LabelComponents = db.GetLabelComponentsByLabelID(LabelIDs.ElementAt(i).Value.ToString()).ToList();
    List<Component> Label = new List<Component>();

    for(int j = 0; j < LabelComponents.Count(); j++)
    {
        ....
        ....

最佳答案

您在第一次 db 调用时需要 ToList,因为您要多次枚举 LabelIDs 值。 LabelIDs.Count 第一次运行查询,然后 LabelIDs.ElementAt 稍后再次运行它。

关于c# - 查询的结果不能被枚举多次(C#)( Entity Framework )(存储过程),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47057635/

10-12 20:56