我在尝试调用DbContext.Database.Migrate
时遇到了此异常。
看起来这在网络上并不常见(或者谷歌在搜索它时遇到了一些麻烦?)。我能找到的唯一可能的原因是内存
数据库或某种非关系
的提供程序?
但是在调试时,我可以看到提供程序名称是 Oracle.EntityFrameworkCore
,我正在使用 Oracle.EntityFrameworkCore 2.19.30
(用于连接到 Oracle 数据库) )。所以现在很困惑,我不确定这里出了什么问题。
代码很简单,如下:
_dbContext.Database.Migrate();
最佳答案
我认为抛出的异常非常令人困惑。我必须查看 RelationalDatabaseFacadeExtensions.GetRelationalService
的源代码,通过它我可以看到 TService
未加载。该服务类型可能包含在某个dll中(最有可能的是Microsoft.EntityFrameworkCore.Relational.dll
,如果该dll未正确加载,它将抛出所描述的异常。
实际上,就我而言,该 dll 加载的版本是错误的(加载的是 2.2.4.0,而 Microsoft.EntityFrameworkCore
版本是 2.2.6.0)。所有这一切都是在我尝试动态加载它们时发生的(没有在项目中紧密引用它们)。
关于c# - 仅当上下文使用关系数据库提供程序时才能使用特定于关系的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57433729/