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

查询结果不能多次枚举(C#)(实体框架)(存储过程),c#,sql,asp.net-mvc,stored-procedures,C#,Sql,Asp.net Mvc,Stored Procedures,当我到达db.GetLabelComponentsByLabelID(LabelIDs.ElementAt(I).Value.ToString()).ToList() 我得到以下异常:查询结果不能被枚举多次 我试图通过调用ToList()来更改LabelComponents,如下所示 long? GroupID = db.GetGroupIDByName("PrintTest").SingleOrDefault(); ObjectResult<long?> LabelIDs = db

当我到达
db.GetLabelComponentsByLabelID(LabelIDs.ElementAt(I).Value.ToString()).ToList()

我得到以下异常:
查询结果不能被枚举多次

我试图通过调用
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++)
    {
        ....
        ....
长?GroupID=db.GetGroupIDByName(“PrintTest”).SingleOrDefault();
ObjectResult LabelIDs=db.GetLabelIDSFromGroupingsByGroupID(GroupID.ToString());
对于(int i=0;i
您需要在第一次db调用中列出
标签,因为您要多次枚举
标签ID
值。
标签ID.Count
第一次运行查询,然后
标签ID.ElementAt
稍后再次运行该查询。

第一句中的代码与您的代码片段不匹配,您确定是否有e> ToList
在实际代码中?@DavidG var LabelComponents=db.GetLabelComponentsByLabelID(LabelIDs.ElementAt(i.Value.ToString()).ToList();它在那里。否?将
.ToList()
放在
GetLabelIDSFromGroupingsByGroupID()之后
您需要
ToList
在第一次db调用时,您将多次枚举
labelid
值。