FirstOrDefaultAsync()、SingleOrDefaultAsync()、FindAsync()方法的区别

FirstOrDefaultAsync()、SingleOrDefaultAsync()、FindAsync()方法的共同点是都是读取单个实体。

它们的不同点如下:

FirstOrDefaultAsync()

以异步方式返回序列中满足指定条件的第一个元素。

如果未找到此类元素,则返回默认值null。

如果有多个元素满足该条件,FirstOrDefaultAsync方法将返回满足条件的第一个元素。

FirstOrDefaultAsync 通常比以下备选方案SingleOrDefaultAsyncFindAsync更好的选择。

SingleOrDefaultAsync()

以异步方式返回序列中满足指定条件的唯一元素。

如果未找到此类元素,则返回默认值null。

如果有多个元素满足该条件,SingleOrDefaultAsync方法将引发异常。

FirstOrDefaultAsync的区别在于,必须明确知道返回结果是唯一的,才可以使用SingleOrDefaultAsync

FindAsync()

以异步方式查找具有主键 ( PK) 的实体。

FindAsync方法的性能比FirstOrDefaultAsync 更优,但无法通过 FindAsync 调用 Include相关数据。如果需要Include相关数据,FirstOrDefaultAsync 则是更好的选择。

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/experience/csharpe/15251.html

(0)
上一篇 2022年6月8日 23:29
下一篇 2022年7月20日 22:15

相关推荐

发表回复

登录后才能评论