2012-07-23 74 views
2

种子最近开始使用的Code First迁移,并希望种子在每个数据截至方法。EF 4.3代码第一次迁移 - 每迁移

这是可能的吗?

即,

  1. 创建数据库表
  2. 数据

用于滴灌:

  1. 从加入表
  2. 删除表中删除数据

回答

6

是有可能但是你必须通过执行SQL命令来完成。请使用您的迁移既UpDown方法Sql的方法来执行INSERTDELETE SQL命令。

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(); 
      }     
     } 

    } 

} 
+0

为什么这个没有被标记为答案???? – 2015-04-29 11:27:31

+0

因为它不回答问题。这甚至不是答案,只是代码。 – 2015-09-21 07:16:42