gpt4 book ai didi

c# - IEnumerable.Single 抛出异常

转载 作者:行者123 更新时间:2023-11-30 22:36:00 25 4
gpt4 key购买 nike

我有以下使用 Entity Framework 的代码:

g_getWidgets = from getWidgets in g_libraryEntities.GET_Widgets() select getWidgets;
.
.
.
IQueryable<GET_Fragments_Result> iqueryable = g_getWidgets.AsQueryable<GET_Widgets_Result>();
var nameValueObject = from nv in iqueryable where nv.ID == int.Parse(key) select nv;
widget = nameValueObject.Single();

widget = nameValueObject.Single(); 行抛出一个异常,提示“The result of a query cannot be enumerated more than once.

执行此功能的正确方法是什么?我只想退回具有正确 ID 的商品。

最佳答案

我建议使用 SingleOrDefault 而不是 FirstOrDefault

Enumerable.FirstOrDefault()

Returns the first element of a sequence, or a default value if the sequence contains no elements.

Source: http://msdn.microsoft.com/en-us/library/bb340482.aspx

这意味着如果有多个匹配项,则只返回找到的第一个。

Enumerable.SingleOrDefault()

Returns the only element of a sequence, or a default value if the sequence is empty; this method throws an exception if there is more than one element in the sequence.

Source: http://msdn.microsoft.com/en-us/library/bb342451.aspx

这意味着如果存在多个匹配项,则会抛出异常。如果重复条目属于数据违规,这将很有用。

关于c# - IEnumerable.Single 抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7196165/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com