简体   繁体   English

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

[英]EF 4.3 Code First Migrations - Seed per migration

have recently started using Code First Migrations and was wanting to seed data in each Up method. 最近开始使用Code First Migrations并且希望在每个Up方法中播种数据。

is this possible? 这可能吗?

Ie. IE浏览器。

  1. Create database table 创建数据库表
  2. Fill with data 填写数据

for Drop: 丢弃:

  1. Delete data from joining table 从连接表中删除数据
  2. delete table 删除表

Yes it is possible but you must do it through executing SQL commands. 是的,但是您必须通过执行SQL命令来完成它。 Use Sql method in both Up and Down methods of your migration to execute INSERT and DELETE SQL commands. 在迁移的UpDown方法中使用Sql方法来执行INSERTDELETE SQL命令。

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

    }

}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM