EF代码优先迁移:没有NUGET的MigrateDatabaseToLatestVersion

Den*_*nis 12 c# entity-framework ef-code-first ef-migrations

我需要帮助来阐明EF Code First Migrations如何在生产机器上运行.我有一些实体类和DbContext派生类来访问实体.现在,我想执行以下几项操作:

  • 当我的应用程序启动时,它必须创建数据库,如果数据库不存在;
  • 那么数据库模式必须调整到模型;
  • 如果刚刚创建了数据库,我想创建一些索引;
  • 另外,如果刚刚创建了数据库,它必须由一些初始数据播种;
  • 所有这些都必须自动执行,不需要任何NUGET命令或外部工具.

我已经阅读了一些有关迁移的文章,但它们主要关注NUGET的使用或运行时的纯自动数据库更新(通过MigrateDatabaseToLatestVersion).我知道关于DbMigration课程,但我无法理解,如何将MigrateDatabaseToLatestVersion策略粘合在一起DbMigration.

UPDATE.
事实上,我不能在项目中使用NUGET,我需要"手动"进行迁移.

Lad*_*nka 24

简单地使用MigrateDatabaseToLatestVersion.

当我的应用程序启动时,它必须创建数据库,如果数据库不存在;

MigrateDatabaseToLatestVersion 会这样做的

那么数据库模式必须调整到模型;

MigrateDatabaseToLatestVersion 会这样做的

如果刚刚创建了数据库,我想创建一些索引;

为您的数据库和Sql方法创建基于代码的初始迁移,Up以定义您需要的所有索引.

另外,如果刚刚创建了数据库,它必须由一些初始数据播种;

再次使用Sql初始迁移或Seed迁移配置中的方法

所有这些都必须自动执行,不需要任何NUGET命令或外部工具

NuGet和命令将帮助您在设计时准备它(但您可以简单地引用所需的程序集并自己编写所有代码).运行时不需要任何powershell命令.

DbMigrator适用于您不想使用的场景,MigrateDatabaseToLatestVersion并且您希望控制代码中的迁移.