DbMigrationsConfiguration如何与EF中的DbMigration相关联

meh*_*dvd 10 c# entity-framework ef-migrations

在通过使用实体框架Enable-Migrations一个迁移文件夹中创建包含Configuration从继承DbMigrationsConfiguration这样的:

internal sealed class Configuration : DbMigrationsConfiguration<MyDbContext>
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

使用创建的所有已创建迁移也都Add-Migration放在" 迁移"文件夹中.

public partial class Init: DbMigration
{
    public override void Up()
    {
        ...
    }

    public override void Down()
    {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

我没有找到任何将这两者联系在一起的代码(例如在迁移中具有配置属性).我找到的唯一关系是两者都放在同一个文件夹中.如果我有超过1个DbContext,因此超过1个配置,我想知道这些DbMigration是如何区分的?

问:如何DbMigration类是相关的Configuration

Ste*_*ene 7

它们按惯例有关.默认情况下,它会将迁移存储在名为Migrations的根文件夹中.您可以在配置的构造函数中覆盖它(https://msdn.microsoft.com/en-us/library/system.data.entity.migrations.dbmigrationsconfiguration(v=vs.113).aspx)或启用时-migrations:

public Configuration()
{
    AutomaticMigrationsEnabled = true;
    MigrationsDirectory = @"Migrations\Context1";
}
Run Code Online (Sandbox Code Playgroud)

对于多个上下文,请使用-Co​​ntextTypeName ProjectName.Models.Context2 -MigrationsDirectory:Migrations\Context2为每个上下文创建不同的配置和文件夹.这是一个演练:http://www.dotnettricks.com/learn/entityframework/entity-framework-6-code-first-migrations-with-multiple-data-contexts