質問: GetContextFromDIContainer(); contextA.Database.Migrate(); contextB.Database.Migrate(); } void ConfigureServices(IServiceCollection services) { services.AddDbContext(opt => { opt.UseSqlServer("connectionstring"); }); services.AddDbContext(opt => { opt.UseSqlServer("connectionstring"); }); } ``` 各`DbContext`は、移行が構成されている別のアセンブリに存在することに注意してください。 私は`Update-Database` CLIツールを使用してそれぞれの移行を手動で実行することができますが、これはアプリケーションの起動コードの一部として機能していないようです。 実行時に両方のコンテキストで移行を実行し、すでに存在する場合は`__EFMigrationsHistory`テーブルの作成をバイパスする方法はありますか?
回答: あなたの問題は、2つのコンテキストが同じ移行履歴テーブルを使用しようとしているだけだと思います それぞれの移行履歴テーブルを特定してみてください ``` protected override void OnConfiguring(DbContextOptionsBuilder options) => options.UseSqlServer( connectionString, x => x.MigrationsHistoryTable("__MyMigrationsHistoryForDBContextA", "mySchema")); ``` 修正する必要があります カスタム移行履歴テーブル