zoukankan      html  css  js  c++  java
  • Entity Framewor中的 Migration

    http://www.entityframeworktutorial.net/code-first/code-based-migration-in-code-first.aspx = Code based Migration

    http://www.entityframeworktutorial.net/code-first/automated-migration-in-code-first.aspx = Automated Migration

    上边两篇文章分别介绍了DataMigration的两种方法。 下面简单总结一下步骤供自己使用。

    VS Tools->package manager console

    > enble-migration 

    执行上面步骤将在你的DBContext目录下生成一个Migrations/Configuration.cs文件。这个文件的。 Seed方法是当Migration完成以后执行的插入数据库的操作,可以放一些系统运行所需要的必须得数据

     1 internal sealed class Configuration : DbMigrationsConfiguration<Infrastructor.MainBoundedContext.UnitWorks.MainDBUnitWorkContext>
     2     {
     3         public Configuration()
     4         {
     5             AutomaticMigrationsEnabled = true;
     6             ContextKey = "Infrastructor.MainBoundedContext.UnitWorks.MainDBUnitWorkContext";
     7         }
     8 
     9         protected override void Seed(Infrastructor.MainBoundedContext.UnitWorks.MainDBUnitWorkContext context)
    10         {
    11             //  This method will be called after migrating to the latest version.
    12 
    13             //  You can use the DbSet<T>.AddOrUpdate() helper extension method 
    14             //  to avoid creating duplicate seed data. E.g.
    15             //
    16             //    context.People.AddOrUpdate(
    17             //      p => p.FullName,
    18             //      new Person { FullName = "Andrew Peters" },
    19             //      new Person { FullName = "Brice Lambson" },
    20             //      new Person { FullName = "Rowan Miller" }
    21             //    );
    22             //
    23             context.Status.AddOrUpdate(p => p.Name,
    24                 new Status { Name = "通过" },
    25                 new Status { Name = "等待审批" }
    26                 );
    27         }
    28     }

    将以上构造函数Merge到自己的DBCOntext文件中

    public MainDBUnitWorkContext(string connectionString)
    : base(connectionString)
    {
    //this.Configuration.ProxyCreationEnabled = false;
    this.Configuration.LazyLoadingEnabled = true;
    
    Database.SetInitializer(new MigrateDatabaseToLatestVersion<MainDBUnitWorkContext,
    Infrastructor.MainBoundedContext.Migrations.Configuration>("MyDBConnectionString"));
    }

    > Add-Migration "MyTest"

    添加新的migration,执行完成以后在migration目录下生成一个 20150101_Mytest.cs文件,其内部列举了这次DB Upgrade执行的升级和降级的操作

    > Update-DataBase -script: 参数script 是执生成sql脚本,也可以不要这个参数,将直接更新数据库

  • 相关阅读:
    圣诞快乐有感
    今天填补了尹大神的一个小瑕疵 被他戏称接锅侠 有感
    统计js数组中奇数元素的个数
    PHP实现一致性哈希算法
    寻找一组数的最大值并统计出现次数
    得知尹大神最后一天在岗位工作明天即将离开有感
    小物件之checkbox复选框
    处理特殊格式的GET传参
    vim分屏
    【学习笔记】Docker基础
  • 原文地址:https://www.cnblogs.com/ygshen/p/4533184.html
Copyright © 2011-2022 走看看