如何在运行时读取迁移文件并将它们应用到我在 EF Core 中的数据库?

How can I read migrations files at runtime and apply them to my database in EF Core?

如何在运行时读取迁移文件并将它们应用到我在 EF Core 中的数据库?

对于测试,我在 运行 测试之前生成迁移文件。现在我想获取迁移文件(我知道生成它们的路径)并在运行时应用它们。我该怎么做?

我知道 dbContext.Database.Migrate(); 应该应用所有的迁移,但是应用并没有发生。我认为 Migrate() 方法不知道在哪里寻找迁移文件,所以我需要一种方法来告诉他这一点。但是我找不到这方面的示例代码。

你好,我想这就是你要找的:https://docs.microsoft.com/en-us/ef/core/managing-schemas/migrations/projects?tabs=dotnet-core-cli

options.UseSqlServer(
    connectionString,
    x => x.MigrationsAssembly("MyApp.Migrations"));

然后: https://docs.microsoft.com/en-us/ef/core/managing-schemas/migrations/applying?tabs=dotnet-core-cli#apply-migrations-at-runtime

using (var scope = host.Services.CreateScope())
    {
        var db = scope.ServiceProvider.GetRequiredService<ApplicationDbContext>();
        db.Database.Migrate();
    }