【发布时间】:2021-10-31 02:21:51
【问题描述】:
亲爱的,
我使用外部方法从序列中生成值,类似代码Getting "NEXT VALUE FOR" for a SQL Server sequence using EF Core 3.1
现在我正在编写一个单元测试用例来从序列中获取下一个值,但我得到了这个错误
无法解析类型“Microsoft.EntityFrameworkCore.Update.IUpdateSqlGenerator”的服务。这通常是因为没有为此 DbContext 配置数据库提供程序。可以通过覆盖“DbContext.OnConfiguring”方法或在应用程序服务提供程序上使用“AddDbContext”来配置提供程序。如果使用了“AddDbContext”,那么还要确保您的 DbContext 类型在其构造函数中接受 DbContextOptions 对象并将其传递给 DbContext 的基本构造函数。
我如何解决此问题并感谢您的宝贵时间
【问题讨论】:
-
我不知道确切的问题,但您可能错过了对将 SQL Server 设置为数据库提供程序的
UseSqlServer方法的调用。 -
我使用“UseInMemoryDatabase”所以我等待模拟这个外部方法
-
我建议为数据库编写集成测试而不是单元测试。内存数据库甚至可能不支持自定义序列。您不能期望内存数据库的行为与 SQL Server 完全相同
-
感谢您的支持,有什么办法可以模拟这个外部方法吗?
-
哪种外部方法?
标签: c# unit-testing entity-framework-core xunit