簡體   English   中英

EF核心-FirstOrDefaultAsync引發Null參考異常

[英]EF Core - FirstOrDefaultAsync throws Null Reference Exception

我正在嘗試使用XUnit測試ASP.NET Core Web API控制器。 我直接在控制器中使用DBContext。 在生產中,我正在使用SqlServer,並且為了進行測試,我正在使用InMemory提供程序。 當我測試一些使用EF Core FirstOrDefaultAsync方法的代碼時,應用程序將FirstOrDefaultAsync空引用異常。 我要查找的值在數據庫中不存在。 根據我的理解,它應該返回NULL,不應引發異常。

我嘗試了諸如where(x => x.Id = id).FirstOrDefaultAsync() ,它也拋出了相同的null引用異常。

空引用異常

當我嘗試類似

var exist = await list.AnyAsync(x => x.Id == id);
if(!exist)
{
return NotFound();
}
var user = await list.FirstAsync(x => x.Id == id);
return user;

有用。 dbcontext和users屬性都是值,這些值不為null。

立即窗口

請幫忙。

該異常不是由您的代碼引起的。 目前,我能夠使用最新的EF Core 3.0 Preview 7來重現它。它在內存提供程序中發生FirstOrDefault[Async]SingleOrDefault[Async]方法。 First[Async]Single[Async]不會發生。

無論如何,這里的主要問題是您使用的是預覽 (beta)軟件,該軟件可能會出現問題。

只需切換到最新的穩定EF Core 2版本,並等待3.0發布,然后再嘗試在生產代碼中使用它即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM