在我的实体框架代码的第一个项目,如果我跑透过包装看到EF代码第一次更新数据库-Script不运行种子()方法
update-database
命令管理控制台,我Seed()
方法成功运行。但是,如果我运行带有-script参数的命令:
update-database -script
...种子()方法不调用,用于播种数据库生成的SQL不包含SQL命令。这种行为是可重复的。我正在尝试创建一个完整的数据库脚本进行部署。
为什么会出现与-script
,没有它运行SQL命令之间的差异,我怎么能得到update-database
运行Seed()
方法使用-script
开关是什么时候?
不够公平。然而,数据库通常需要某种相当静态的“种子”数据来表达像Enums这样的东西。我不能使用update-database -script来为不包括EmployeeType(1,“Permanent”)(2,“Temporary”)等等的Ops生成DB部署脚本。 –
是的,的确如此。但这不在迁移范围之内。如果你想要这样的东西,你必须自己写。我在大部分项目中也采用这种方法。 如果您担心如何构建项目或在何处放置这些脚本,则应考虑SSDT。但是在这种情况下,你必须自己编写这些脚本。 –
在Configuration.cs中实现它真的很方便 - 这已经在源代码管理中,并且隐含地与迁移保持一致。我想尽可能自动化。我应该问另一个SO问题:) –