Linq中的第一个方法是异步的吗?
我是dotnetasp核心的新手,希望使用异步方法与数据库进行对话,以遵循良好的实践 在我面临的场景中,我需要检索与条件匹配的表的第一条记录。它可能存在,也可能不存在。因此,我首先使用实体框架dbContext.mytable.First,但它似乎不是异步的Linq中的第一个方法是异步的吗?,linq,.net-core,entity-framework-core,Linq,.net Core,Entity Framework Core,我是dotnetasp核心的新手,希望使用异步方法与数据库进行对话,以遵循良好的实践 在我面临的场景中,我需要检索与条件匹配的表的第一条记录。它可能存在,也可能不存在。因此,我首先使用实体框架dbContext.mytable.First,但它似乎不是异步的 我应该去掉它,只使用dbContext.mytable.FindAsync吗 您可能缺少引用 注意名称空间和程序集 Namespace: Microsoft.EntityFrameworkCore Assembly: Micr
我应该去掉它,只使用dbContext.mytable.FindAsync吗 您可能缺少引用 注意名称空间和程序集
Namespace: Microsoft.EntityFrameworkCore
Assembly: Microsoft.EntityFrameworkCore.dll
这应该允许使用FirstAsync
var result = await dbContext.mytable.FirstAsync(x => x.property == something);
如果该记录可能不存在,则使用
您可能缺少引用说明如果记录不存在,则命名空间和assemblyFirst()将引发异常,而您可以使用FirstOrDefault,因此如果记录不存在,则返回值将为null,并且不会引发任何验证。正常的LINQ方法都不是异步的。他们需要一个返回类型
Task
才能是异步的。这一点很好,但是,我应该在动作控制器中仍然使用非异步方法吗?每个人似乎都同意只应该使用异步函数。
var result = await dbContext.mytable.FirstOrDefaultAsync(x => x.property == something);