NSubstitute: ToDictionaryAsync:只有实现IDbAsyncEnumerable的数据源才能用于Entity Framework的异步操作
我在使用.NET 8与 NSubstitute进行单元测试。
尽管我按照 IQueryable 和 BuildMock 正确设置了我的代码库:
- 当调用
ToListAsync时,单元测试运行正常 - 当调用
ToDictionaryAsync时,我得到:
System.InvalidOperationException:源IQueryable未实现IDbAsyncEnumerable。只有实现IDbAsyncEnumerable的数据源才能用于Entity Framework的异步操作。
我会把答案放上来,供将来参考。
解决方案
测试的代码使用了错误的扩展方法:
ToDictionaryAsync from System.Data.Entity
而不是
ToDictionaryAsync from Microsoft.EntityFrameworkCore
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。