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