2011-10-05 93 views

回答

14

FirstOrDefault()适用于在输入集合中存在零个或多个结果时,如果存在多个结果,则调用返回第一个项目,如果没有,则返回Default。

SingleOrDefault()适用于在输入集合中预期有零个或一个结果,并且如果只有一个结果存在,则调用返回一个结果,如果没有结果则返回缺省值,如果结果不止一个则返回异常。

7

如果存在多个项目,则SingleOrDefault将抛出“Sequence contains more than one element”异常。

0

firstordefault将采取行的数量,但只会返回它的第一个,如果它是 空它可以处理异常 首先,它会采取行的数量,但只会返回它的第一个,如果它是 空它会抛出异常 的SingleOrDefault这将只需要一个行,但将返回它可以处理异常,如果它是空 单就只需要一个行,但将返回它&不能处理异常

如果您的结果集返回0记录:

SingleOrDefault返回类型的默认值(例如,默认为int是0) FirstOrDefault该类型 如果结果集返回1个记录返回默认值:

的SingleOrDefault返回记录 FirstOrDefault返回记录 如果您的结果集返回多条记录:

SingleOrDefault引发异常 FirstOrDefault返回第一条记录 结论:

如果要在结果集包含许多记录时抛出异常,请使用SingleOrDefault。

如果你总是希望1个记录无论是什么结果集包含,在这里使用FirstOrDefault

相关问题