我观看了来自 MSDN BLOG的关于数据库迁移的截屏视频。
有谁知道我们什么时候可以使用这个功能?看起来它在 CTP5 中还不起作用。
顺便说一句,在我更改架构代码后,有没有办法播种初始数据?
这就是我现在正在做的事情,每次我更改模型时它都会擦除所有数据。
DbDatabase.SetInitializer<Context>(
new DropCreateDatabaseIfModelChanges<Context>());
我观看了来自 MSDN BLOG的关于数据库迁移的截屏视频。
有谁知道我们什么时候可以使用这个功能?看起来它在 CTP5 中还不起作用。
顺便说一句,在我更改架构代码后,有没有办法播种初始数据?
这就是我现在正在做的事情,每次我更改模型时它都会擦除所有数据。
DbDatabase.SetInitializer<Context>(
new DropCreateDatabaseIfModelChanges<Context>());
他们最有可能在 2011 年第一季度推出的 RTM 版本中获得此迁移功能。
要使用一些初始数据填充数据库,您可以创建自己的数据库初始化程序并让它从您所需的策略继承(现在我们有 2 个选项),然后覆盖其中的Seed方法:
public class MyInitializer : DropCreateDatabaseIfModelChanges<MyContext>
{
protected override void Seed(InheritanceMappingContext context)
{
MyEntity entity = new MyEntity()
{
...
};
context.MyEntities.Add(entity);
context.SaveChanges();
}
}
Alpha 3 现已推出。 http://blogs.msdn.com/b/adonet/archive/2011/09/21/code-first-migrations-alpha-3-no-magic-walkthrough.aspx
EF 4.1 候选版本已于 3 月发布,似乎尚未包含此迁移功能