當您收到 LINQ 錯誤“序列不包含元素”時,這通常是因為您使用的是First()orSingle()命令而不是FirstOrDefault()and SingleOrDefault()。
這也可能是由以下命令引起的:
FirstAsync()
SingleAsync()
Last()
LastAsync()
Max()
Min()
Average()
Aggregate()
當您收到 LINQ 錯誤“序列不包含元素”時,這通常是因為您使用的是 First() 或 Single() 命令,而不是 FirstOrDefault() 和 SingleOrDefault()。
以下面的代碼為例,它對 LINQ 查詢的結果使用 First()。如果沒有結果,調用 First() 會觸發“Sequence contains no elements”錯誤。:
var rel = (from r in relEnds
where r.Contains(added.OtherEndKey(entity.EntityKey))
select r).OfType<EntityReference>().First();
要解決此問題,您只需將 First() 更改為 FirstOrDefault() ,當選擇沒有結果時返回 null 值:
var rel = (from r in relEnds
where r.Contains(added.OtherEndKey(entity.EntityKey))
select r).OfType<EntityReference>().FirstOrDefault();