具有上下文密钥更改的脚手架迁移

Tom*_*uer 7 c# entity-framework ef-code-first ef-migrations entity-framework-6

我重新构建了我的项目,导致更改了数据库上下文的命名空间名称和相关的Code First配置.那时,我有一个脚手架迁移,"InitialCreate",因此我的数据库的__MigrationHistory表包含一行,其中包含一些MigrationId,ContextKey包含类的命名空间名称和类名Configuration.

之后我搬来搬去的事情,在执行Get-Migrations没有返回结果,改变后ContextKey按我的同事的建议下,"InitialCreate"迁移正确枚举.

在更改期间我应该采取哪些步骤,以便不会破坏我的迁移的连续性,从而无需ContextKey手动重命名?显然,对于一个应用的迁移来说,这没什么大不了的,但是对于几十个应用的迁移来说,这是一个巨大的痛苦.

Ogn*_*rov 14

我被困在这里很长一段时间,并在这里问及回答.在EF文档中,您可以在此处找到有关上下文键的说明.您应该创建自定义迁移配置,如下所示:

 public class MyMigrationConfiguration : DbMigrationsConfiguration<MyMigrationContext>
{
    public MyMigrationConfiguration ()
    {
        AutomaticMigrationsEnabled = false;
        AutomaticMigrationDataLossAllowed = false;
        MigrationsNamespace = "My.Migrations.Assembly";
        MigrationsDirectory = "My/Migrations/Directory";
        ContextKey = "MyContexKey"; // You MUST set this for every migration context
    }
}
Run Code Online (Sandbox Code Playgroud)