DbMigrationsConfiguration

DbMigrationsConfiguration

在Entity Framework中,通过使用Enable-Migrations,将创建一个Migrations文件夹,其中包含从Configuration继承的DbMigrationsConfiguration,如下所示:

internal sealed class Configuration : DbMigrationsConfiguration<MyDbContext>
{
    ...
}

使用Add-Migration创建的所有创建的迁移也都放置在Migrations文件夹中。
public partial class Init: DbMigration
{
    public override void Up()
    {
        ...
    }

    public override void Down()
    {
        ...
    }
}

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

问题: DbMigration类与Configuration有何关系?

最佳答案

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

public Configuration()
{
    AutomaticMigrationsEnabled = true;
    MigrationsDirectory = @"Migrations\Context1";
}

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

关于c# - DbMigrationsConfiguration与EF中的DbMigration有何关系,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31267660/

10-10 01:12