.net core 为什么在实体框架核心中使用FindAsync时会出现空引用异常?

.net core 为什么在实体框架核心中使用FindAsync时会出现空引用异常?,.net-core,entity-framework-core,.net Core,Entity Framework Core,使用.NET Core 3.1,我有一个简单的控制器方法,定义如下: [HttpGet{id}] 公共异步任务获取[FromRoute]int id { var animal=await_dbContext.animal.FindAsync id; 如果animal==null,则返回NotFound; 还可以动物; } 当使用有效id调用时,会从FindAsync内引发空引用异常 如果我转换为同步方法,并改用Find,它将按预期工作 我尝试过将Task更改为ValueTask,或将.AsTas

使用.NET Core 3.1,我有一个简单的控制器方法,定义如下:

[HttpGet{id}] 公共异步任务获取[FromRoute]int id { var animal=await_dbContext.animal.FindAsync id; 如果animal==null,则返回NotFound; 还可以动物; } 当使用有效id调用时,会从FindAsync内引发空引用异常

如果我转换为同步方法,并改用Find,它将按预期工作

我尝试过将Task更改为ValueTask,或将.AsTask添加到.FindAsync,但没有任何区别。
如何让异步调用正常工作?

也许您可以试试这种语法


var animal=await_dbContext.animal.FirstOrDefaultAsyncx=>x.Id==Id

也许你可以试试这种语法

var animal=await_dbContext.animal.FirstOrDefaultAsyncx=>x.Id==Id