1

我正在使用使用 EF5 的 CodeFirst 方法。

如果我的模型发生更改,我正在考虑运行 DropCreateDatabaseIfModelChanges 来修复数据库,但是当它运行时需要重新填充数据。

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

提前致谢。

4

1 回答 1

1

您需要派生DropCreateDatabaseIfModelChanges并覆盖Seed方法,以便在重新创建数据库时将数据添加到用于播种的上下文中:

public class MyDbInitializer : DropCreateDatabaseIfModelChanges<MyDbContext>
{

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

}

并在您的应用程序启动时将其设置为数据库初始化程序:

Database.SetInitializer(new MyDbInitializer());
于 2012-07-18T04:36:45.693 回答