Linq 在林克,什么';.FirstOrDefault和.SingleOrDefault之间的区别是什么
我不知道Linq 在林克,什么';.FirstOrDefault和.SingleOrDefault之间的区别是什么,linq,entity-framework,Linq,Entity Framework,我不知道FirstOrDefault和SingleOrDefault之间的区别。何时使用第一个和何时使用第二个?如果存在多个项,SingleOrDefault将引发“序列包含多个元素”异常。FirstOrDefault()用于输入集合中预期存在零个或多个结果,如果有多个结果,调用将返回第一项,如果没有,则返回默认值 SingleOrDefault()用于输入集合中预期为零或一个结果,如果正好存在一个结果,调用将返回一个结果;如果没有结果,则返回默认值;如果有多个结果,则返回异常。firstord
FirstOrDefault
和SingleOrDefault
之间的区别。何时使用第一个和何时使用第二个?如果存在多个项,SingleOrDefault将引发“序列包含多个元素”异常。FirstOrDefault()用于输入集合中预期存在零个或多个结果,如果有多个结果,调用将返回第一项,如果没有,则返回默认值
SingleOrDefault()
用于输入集合中预期为零或一个结果,如果正好存在一个结果,调用将返回一个结果;如果没有结果,则返回默认值;如果有多个结果,则返回异常。firstordefault它将获取行数,但如果是第一个结果,则只返回第一个结果
null它可以处理异常
首先,它将获取行数,但如果是,则只返回其中的第一行
null它将抛出异常
singleordefault它将只接受一行,但将返回它。如果它为null,则可以处理异常
它将只接受一行,但将返回它&无法处理异常
如果结果集返回0条记录:
SingleOrDefault返回类型的默认值(例如int的默认值为0)
FirstOrDefault返回类型的默认值
如果结果集返回1条记录:
SingleOrDefault返回该记录
FirstOrDefault返回该记录
如果结果集返回多条记录:
SingleOrDefault引发异常
FirstOrDefault返回第一条记录
结论:
如果希望在结果集包含多条记录时引发异常,请使用SingleOrDefault
如果无论结果集包含什么,您总是想要一条记录,请在此处使用FirstOrDefault一些非常好的对话: