使用多个 EF 迁移/配置时出错(__MigrationHistory 每次都重新创建)

error when using multiple EF migrations / configurations (__MigrationHistory is recreated everytime)

我有 2 个不同且独立的 dbcontext,我想通过代码优先迁移创建数据库模式(使用 npgsql/posgresql)。 我使用 Add-Migration 命令行工具将配置(AutomaticMigrationsEnabled 设置为 false)和 2 个初始迁移文件(每个 dbcontext 一次)放入 2 个不同的文件夹中。

然后我使用带有第一个配置的命令行 Update-Database 并且它有效,使用与第一个上下文相关的 tables 正确创建了数据库。 但是当我尝试将 Update-Database 与其他配置一起使用时,我得到一个异常,因为它正在尝试创建已经存在的 table __MigrationHistory。

我的代码有什么问题?

我发现了错误,我不知道它是 entityframework 还是 npgsql dll 的错误,但是如果 dbcontexts 使用不同于 dbo 的模式(我将所有模式设置为 'public', 默认的 postgresql 名称) 也有必要为历史 table 子类化 HistoryContext https://msdn.microsoft.com/en-us/data/dn456841.aspx.

设置相同的模式

详细错误是迁移时执行的伪代码是

if not exist the table 'dbo'.__MigrationHistory
create the table 'public'.__MigrationHistory