我使用的是使用EF5的CodeFirst方法。
我正在考虑运行DropCreateDatabaseIfModelChanges来修复数据库,如果我的模型发生了变化,但是有些数据在运行时需要重新填充。
我认为我可以进行实体计数以查看它是否已运行,但我很好奇是否有更优雅的方法来执行此操作? (我可以查找代码的某种返回值或事件)
提前致谢。
答案 0 :(得分:1)
您需要从DropCreateDatabaseIfModelChanges
派生并覆盖Seed方法,以便在重新创建数据库时将数据添加到上下文中进行种子设定:
public class MyDbInitializer : DropCreateDatabaseIfModelChanges<MyDbContext>
{
protected override void Seed(MyDbContext context)
{
context.AddSomeInitialData();
context.SaveChanges();
}
}
在您的应用程序上,将其设置为数据库初始化程序:
Database.SetInitializer(new MyDbInitializer());