【发布时间】:2014-07-10 07:44:12
【问题描述】:
我需要从按日期降序排列的第一行中选择一个特定的单个数据元素。请说明以下关键字之间的区别。
- 首先
- FirstOrDefault
- singleOrDefault
还需要Linq ORM Query中下Orderby、where&select的优先级/顺序和使用规则。如果答案清晰且具有描述性,那将非常有帮助。
提前致谢
【问题讨论】:
我需要从按日期降序排列的第一行中选择一个特定的单个数据元素。请说明以下关键字之间的区别。
还需要Linq ORM Query中下Orderby、where&select的优先级/顺序和使用规则。如果答案清晰且具有描述性,那将非常有帮助。
提前致谢
【问题讨论】:
快速的 Google 会为您提供以下问题来解决您的问题:
When to use .First and when to use .FirstOrDefault with LINQ?
LINQ: When to use SingleOrDefault vs. FirstOrDefault() with filtering criteria
您可能还会发现以下文章在介绍每种方法时很有用:
如答案中所述,名称确实泄露了它(对那些熟悉的人),但这里有一个快速概述:
第一
将返回集合中的第一个条目(返回一个或多个结果),如果没有返回记录将抛出异常。
FirstOrDefault
将返回集合中的第一个条目(返回一个或多个结果),如果没有返回记录,将返回适当的默认对象
SingleOrDefault
这个和前面提到的函数不太一样,只有返回一条记录才会返回结果,否则返回相应的默认对象。
如果我知道我的结果会总是返回“某物”,我倾向于使用First,当我只想要第一个元素但知道有时查询可能会返回时,我会使用FirstOrDefault没有。我还没有亲自使用过SingleOrDefault,但它应该只用于您的查询只会返回一行并且如果存在多个结果则应该忽略返回的结果。
【讨论】: