如何使用Entity Framework Database First方法对数据进行种子化?

时间:2013-05-10 23:09:43

标签: entity-framework entity-framework-5

我看到许多使用Code First播种的例子,但我不确定我在使用EF Database First时了解播种数据库的惯用方法。

1 个答案:

答案 0 :(得分:0)

最佳做法非常依赖于情况。然后是DEV与PROD环境。 使用Drop时自动播种并在DEV期间重新创建模型更改,这样您就可以获得最合适的测试数据。这是它最常用的时候。

原因是您可以使用手动触发的测试方法。我个人觉得这个想法是一个自动触发的种子方法,当数据库结构不稳定时,这种方法并不令人兴奋,更多的是用于DEV原型设计。使用迁移时,您倾向于保留您辛苦赚来的测试数据。有些人在PROD初始安装期间使用Seeding。其他人将在安装/调试过程中触发特定的加载例程。我喜欢使用自定义加载例程。

编辑:代码第一个样本。使用DB First,您只需正常写入Db。

// select the appropriate initializer for your situation eg
Database.SetInitializer(new MigrateDatabaseToLatestVersion<MyDbContext, MyMigrationConfiguration>());
Context.Database.Initialize(true);  // yes now please
//...
 public class MyMigrationConfiguration<TContext> : DbMigrationsConfiguration<TContext> 
    where TContext  : DbContext{

    public  MyMigrationConfiguration() {
        AutomaticMigrationsEnabled = true;  //fyi  options
        AutomaticMigrationDataLossAllowed = true; //fyi options
   }
    public override void Seed(TContext context)
    {
        base.Seed(context);
// SEED AWAY..... you have the context
    }

}
相关问题