检测DropCreateDatabaseIfModelChanges Ran?

时间:2012-07-18 02:10:04

标签: c# ef-code-first entity-framework-5

我使用的是使用EF5的CodeFirst方法。

我正在考虑运行DropCreateDatabaseIfModelChanges来修复数据库,如果我的模型发生了变化,但是有些数据在运行时需要重新填充。

我认为我可以进行实体计数以查看它是否已运行,但我很好奇是否有更优雅的方法来执行此操作? (我可以查找代码的某种返回值或事件)

提前致谢。

1 个答案:

答案 0 :(得分:1)

您需要从DropCreateDatabaseIfModelChanges派生并覆盖Seed方法,以便在重新创建数据库时将数据添加到上下文中进行种子设定:

public class MyDbInitializer : DropCreateDatabaseIfModelChanges<MyDbContext>
{

    protected override void Seed(MyDbContext context)
    {
        context.AddSomeInitialData();
        context.SaveChanges();        
    }

}

在您的应用程序上,将其设置为数据库初始化程序:

Database.SetInitializer(new MyDbInitializer());