NSubstitute: ToDictionaryAsync:只有实现IDbAsyncEnumerable的数据源才能用于Entity Framework的异步操作

编程语言 2026-07-11

我在使用.NET 8与 NSubstitute进行单元测试。

尽管我按照 IQueryableBuildMock 正确设置了我的代码库:

  • 当调用 ToListAsync 时,单元测试运行正常
  • 当调用 ToDictionaryAsync 时,我得到:

System.InvalidOperationException:源IQueryable未实现IDbAsyncEnumerable。只有实现IDbAsyncEnumerable的数据源才能用于Entity Framework的异步操作。

我会把答案放上来,供将来参考。

解决方案

测试的代码使用了错误的扩展方法:

ToDictionaryAsync from System.Data.Entity

而不是

ToDictionaryAsync from Microsoft.EntityFrameworkCore

站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章