bru*_*eaf 6 entity-framework entity-framework-5
我看到许多使用Code First播种的例子,但我不确定我在使用EF Database First时了解播种数据库的惯用方法.
最佳实践很大程度上取决于具体情况。然后是 DEV 与 PROD 环境。在开发期间使用“删除”并在模型更改时重新创建时自动播种,这样您就可以拥有最有意义的测试数据。这是用得最多的时候。
当然,您可以拥有手动触发的测试方法。我个人认为自动触发种子方法的想法并不那么令人兴奋,而且当数据库结构不稳定时更适合 DEV 原型设计。使用迁移时,您倾向于保留来之不易的测试数据。有些在 PROD 中的初始安装期间使用播种。其他人将在安装/调试过程中触发特定的加载例程。我喜欢使用自定义加载例程。
编辑:代码第一个示例。使用 DB First,您只需正常写入数据库即可。
// 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
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2472 次 |
| 最近记录: |