EF 7 迁移。不同程序集中的 Web 项目、DBContext 和迁移

EF 7 Migrations. Web project, DBContext and Migrations in different assemblies

我的解决方案中有三个项目。

BaseApp.Data - 包含我的 DBContext。

BaseApp.Data.ProjectMigration - 包含所有迁移文件(取决于 BaseApp.Data

BaseApp.Web - Web 应用程序启动 class.

我这样添加我的第一个迁移:

dnx ef migrations add Initial -p BaseApp.Data.ProjectMigration

执行此命令后,Migrations 文件夹将显示 BaseApp.Data.ProjectMigration 中的所有相应文件。所以到目前为止一切正常。

然后我尝试应用迁移:

dnx ef database update

执行此命令后,数据库已创建,但未应用任何迁移。我也试过

dnx ef database update -p BaseApp.Data.ProjectMigration

结果相同。还有下一个命令 returns "No migrations were found".

dnx ef migrations list -p BaseApp.Data.ProjectMigration

此外,如果我将迁移添加到 BaseApp.Data,那么一切正常。接下来的命令按预期工作:

dnx ef migrations add Initial -p BaseApp.Data

dnx ef database update

那么是否可以保留不在 DBContext 项目中的迁移文件?

您还需要设置迁移程序集。

options.UseSqlServer(connectionString)
    .MigrationsAssembly("BaseApp.Data.ProjectMigration");