2012-03-14 149 views
1

我在我的项目中有多个迁移,每个迁移添加了许多列。 每次迁移后,我想根据其他已有的列将数据填充到列中。 我在一个团队工作,我们每个人都有一个本地数据库与测试数据。实体框架4.3数据迁移 - 单种子方法?

目前配置类中只有一个种子方法。

通过一次迁移添加列,在种子方法中添加数据没有问题,但是多次迁移中每次都添加列,除非我更新种子方法以匹配最近的迁移,否则它将不起作用。

为什么他们不包括虚拟或抽象种子方法让人们在DbMigration类中需要时重写?这似乎是一个更好的方法?

在此先感谢

回答

3

因为你可以直接在您的迁移类Up方法种子数据。只要致电:

Sql("INSERT INTO ... "); 
Sql("UPDATE ... "); 

Seed在迁移配置方法更适合于初始数据库播种在创建数据库时,但它也可以用于即将到来的种子,当你需要添加或更新整个实体 - 不只是初始化列。

+0

我还没有想过,但我真的很想能够使用上下文,因为新值有点复杂,并且基于已经在表中的数据。 也许有可能在up中使用ModelDataContext类。我希望那些作品不会杀死一个小小海豹。 – Moulde 2012-03-14 13:47:45

+0

我不认为有可能在迁移中使用上下文。 – 2012-03-14 13:57:32

+0

不是我真正希望的答案,但我想这是最接近我得到:)而且我不知道能够从迁移类执行SQL。谢谢 – Moulde 2012-03-16 11:44:21