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

use*_*652 13 .net c# entity-framework code-first ef-migrations

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

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

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

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

DbDatabase.SetInitializer<Context>(
    new DropCreateDatabaseIfModelChanges<Context>());
Run Code Online (Sandbox Code Playgroud)

Mor*_*avi 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();
    }
}
Run Code Online (Sandbox Code Playgroud)