当我到达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++)
{
....
....
答案 0 :(得分:1)
第一次 db调用需要ToList
,因为您多次枚举LabelIDs
值。 LabelIDs.Count
第一次运行查询,然后LabelIDs.ElementAt
稍后再次运行它。