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?
它们按惯例有关.默认情况下,它会将迁移存储在名为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)
对于多个上下文,请使用-ContextTypeName ProjectName.Models.Context2 -MigrationsDirectory:Migrations\Context2为每个上下文创建不同的配置和文件夹.这是一个演练:http://www.dotnettricks.com/learn/entityframework/entity-framework-6-code-first-migrations-with-multiple-data-contexts