仅当上下文使用关系数据库提供程序时才能使用特定于关系的方法?

我在尝试调用时遇到了此异常DbContext.Database.Migrate。看起来这在网络上并不常见(或者谷歌在搜索它时遇到了一些麻烦?)。我能找到的唯一可能的原因是in-memory数据库或某种不是这样的提供商relational

Oracle.EntityFrameworkCore但是在调试时,我可以看到我正在使用的提供程序名称是Oracle.EntityFrameworkCore 2.19.30(连接到 Oracle 数据库)。所以现在很混乱,我不确定这里出了什么问题。

代码很简单,如下所示:

_dbContext.Database.Migrate();


尚方宝剑之说
浏览 92回答 1
1回答

largeQ

我认为抛出的异常非常令人困惑。我必须查看源代码,RelationalDatabaseFacadeExtensions.GetRelationalService通过它我可以看到不知何故TService未加载。该服务类型可能包含在某个dll中(最有可能的是Microsoft.EntityFrameworkCore.Relational.dll,如果该dll未正确加载,它将抛出所描述的异常。实际上,就我而言,该 dll 加载了错误的版本(加载了 2.2.4.0,而版本Microsoft.EntityFrameworkCore是 2.2.6.0)。所有这一切都是在我尝试动态加载它们时发生的(没有在项目中紧密引用它们)。
打开App,查看更多内容
随时随地看视频慕课网APP