443
|
p.campbell · 技术社区 · 15 年前 |
![]() |
1
403
无论何时使用
我个人发现语义非常不同,根据预期的结果,使用适当的语义可以提高可读性。 |
![]() |
2
518
如果结果集返回0条记录:
如果结果集返回1条记录:
如果结果集返回许多记录:
结论:
如果希望在结果集包含多个记录时引发异常,请使用
如果无论结果集包含什么,始终需要1条记录,请使用
|
![]() |
3
225
有
在两者之间。 语义差异:
性能差异
结论
在实践中,你使用
|
![]() |
4
68
没有人提到,在SQL中转换的first或default是前1条记录,而single或default是前2条记录,因为它需要知道是否有超过1条记录。 |
![]() |
5
11
对于Linq->SQL: 单一违约
首次违约
|
![]() |
6
10
我用
|
![]() |
7
5
singleOrDefault:您的意思是“最多”有一个项目匹配查询或默认值。 first或default:您的意思是至少有一个项目与查询或默认值匹配。 下次你需要选择的时候大声说出来,你很可能会做出明智的选择。:) |
![]() |
8
4
在您的情况下,我将使用以下内容: 按id==5选择:这里可以使用single或default,因为您希望有一个[或无]实体,如果有多个id为5的实体,则会出现错误,绝对值得异常处理。 当搜索名字等于“bobby”的人时,可以有多个(我很可能会认为),所以您不应该使用single或first,只需选择where操作(如果“bobby”返回太多实体,用户必须优化其搜索或选择返回的结果之一)。 按创建日期排序还应使用where操作(不太可能只有一个实体,排序不会有太大的用处;)但这意味着您希望对所有实体进行排序-如果只需要一个实体,请使用first或default,如果有多个实体,则每次都会抛出single。 |
![]() |
9
3
在上一个示例中:
是的。如果你想用
|
![]() |
10
3
两者都是元素操作符,用于从序列中选择单个元素。但它们之间有一个微小的区别。如果满足以下条件,则singleOrDefault()运算符将引发异常:as firstOrDefault()不会对同一个元素引发任何异常。下面是例子。
|
![]() |
11
1
我现在明白了,
或者有更好的方法来查询主键。 假设我的TableAcc
我想查询
|
![]() |
12
-1
回答中遗漏了一件事…… 如果有多个结果,没有order by的first或default可以返回不同的结果,而服务器使用的索引策略正是基于这些结果。 就我个人而言,我无法忍受在代码中看到first或efault,因为对我来说,它表示开发人员不关心结果。尽管它可以作为强制执行最新/最早版本的一种方式,但它还是有帮助的。我不得不纠正许多由使用first或default的粗心开发人员引起的问题。 |
![]() |
13
-8
我不明白你为什么用
由于问题的标题不特定于DB上的LINQ或要列出的LINQ/IEnumerable等,因此不应投反对票。 |
![]() |
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 8 月前 |
|
Pavel Foltyn · 如何在C中生成逆字典# 9 月前 |
![]() |
ewok · 基于种子和上一个值创建值列表 1 年前 |
|
Vasu V · 将foreach转换为select语句 1 年前 |
![]() |
Modest · 使用命名空间和文本值序列化xElement 1 年前 |