关于Code First数据库演变(又称迁移)

时间:2011-01-16 02:39:55

标签: c# .net entity-framework code-first ef-migrations

我观看了MSDN BLOG的一个关于数据库迁移的截屏视频。

有谁知道我们什么时候可以使用此功能?看起来它在CTP5中还不起作用。

顺便说一句,在更改架构代码后,有没有办法播种初始数据?

这就是我现在正在做的事情,它每次更改模型时都会擦除所有数据。

DbDatabase.SetInitializer<Context>(
    new DropCreateDatabaseIfModelChanges<Context>());

3 个答案:

答案 0 :(得分:10)

他们很可能在RTM版本中获得此迁移功能,该版本的目标是2011年第一季度。

要使用一些初始数据填充数据库,您可以创建自己的数据库初始化程序并让它继承您所需的策略(现在我们有2个选项),然后覆盖其中的 Seed 方法:

public class MyInitializer : DropCreateDatabaseIfModelChanges<MyContext>
{
    protected override void Seed(InheritanceMappingContext context)
    {        
        MyEntity entity = new MyEntity()
        {
            ...
        };
        context.MyEntities.Add(entity);
        context.SaveChanges();
    }
}

答案 1 :(得分:1)

答案 2 :(得分:0)

EF 4.1候选版本已于3月发布,看起来尚未包含此迁移功能