查询的结果不能多​​次枚举(C#)(实体框架)(存储过程)

时间:2017-11-01 14:53:50

标签: c# sql asp.net-mvc stored-procedures

当我到达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++)
    {
        ....
        ....

1 个答案:

答案 0 :(得分:1)

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