从Configuration类编写EF迁移种子

Ian*_*971 26 entity-framework ef-migrations

我有很好的EF迁移工作,但我也想从我的DbMigrationsConfiguration类生成种子数据的sql脚本.当我执行Update-Database时,种子数据运行正常,但是当我执行UpdateDatabase -Script时,我没有获得种子插入的sql.我尝试-Verbose在正常的Update-Database上,但我也没有看到那里的种子语句输出.

这可能吗?

Lad*_*nka 19

不,这是不可能的.配置类不是迁移本身的一部分 - 它是执行迁移的基础结构.您有所有迁移的单一配置类,并且Seed在每次迁移运行后都会执行其方法 - 您甚至可以使用上下文来播种数据,因此在迁移完成后执行此方法=它不能成为迁移的一部分.仅编写迁移类的内容.

  • 脚本编写时不包括种子似乎不是一个大规模的疏忽?为什么非脚本化的Update-Database对数据进行种子化,而不是在生成脚本以执行完全相同的任务时呢?我不明白. (2认同)

Taw*_*kil 9

另一个解决方案/解决方法是让SSMS为您生成脚本:

1)从数据库初始化程序和种子方法生成的干净数据库开始.确保您想要编写脚本的数据.

2)使用SSMS,右键单击数据库,转到任务>"生成脚本...",然后按照向导进行操作.在"高级选项"下,请确保为"要编写脚本的数据类型"选择"仅数据".

3)从生成的脚本中,将所需的种子语句复制到目标脚本.