EF 4.3 Code First迁移 - 每次迁移的种子

时间:2012-07-23 11:08:25

标签: entity-framework ef-code-first ef-migrations

最近开始使用Code First Migrations,并希望在每个 Up 方法中播种数据。

这可能吗?

  1. 创建数据库表
  2. 填写数据
  3. for Drop:

    1. 从连接表中删除数据
    2. 删除表格

2 个答案:

答案 0 :(得分:6)

是的,但是必须通过执行SQL命令来实现。在迁移的SqlUp方法中使用Down方法执行INSERTDELETE SQL命令。

答案 1 :(得分:3)

public partial class DBInitializer : IDatabaseInitializer<DBContext>
{
    public void InitializeDatabase(DBContext context)
    {

        var cfg = new Migrations.Configuration();
        var migrator = new DbMigrator(cfg);

        List<string> pendingMigrations = new List<string>(migrator.GetPendingMigrations());

        foreach (string migration in pendingMigrations)
        {
            Console.WriteLine("Updating Migration:" + migration);
            migrator.Update(migration);
            Console.WriteLine("Updated Migration:" + migration);

            if (migration.Contains("AddMyProperty"))
            {
                // seed data codes
                context.SaveChanges();
            }                
        }

    }

}