当我到达 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/