zoukankan      html  css  js  c++  java
  • EFCodeFirst Migrations数据库迁移

    EFCodeFirst Migrations数据库迁移

    数据库迁移

    1.生成数据库

    • 修改类文件PortalContext.cs的静态构造函数,取消当数据库模型发生改变时删除当前数据库重建新数据库的设置。
    1. static PortalContext() 

    2. Database.SetInitializer<PortalContext>(null); 

    • 添加Migrations文件夹,并生成类文件Configuration.cs。
    1. namespace Portal.Migrations 

    2. using System; 
    3. using System.Data.Entity; 
    4. using System.Data.Entity.Migrations; 
    5. using System.Linq; 
    6.  
    7. internal sealed class Configuration : DbMigrationsConfiguration<Portal.PortalContext

    8. public Configuration() 

    9. AutomaticMigrationsEnabled = true

    10.  
    11. protected override void Seed(Portal.PortalContext context) 

    12. // This method will be called after migrating to the latest version. 
    13.  
    14. // You can use the DbSet<T>.AddOrUpdate() helper extension method  
    15. // to avoid creating duplicate seed data. E.g. 
    16. // 
    17. // context.People.AddOrUpdate( 
    18. // p => p.FullName, 
    19. // new Person { FullName = "Andrew Peters" }, 
    20. // new Person { FullName = "Brice Lambson" }, 
    21. // new Person { FullName = "Rowan Miller" } 
    22. // ); 
    23. // 



    • 在程序包管理器控制台,执行语句:
    1. PM> Update-Database -Verbose 
    • 在数据库模型中添加City类,执行程序包管理器控制台语句,Migrations文件夹中新增类文件
    1. PM> Add-Migration AddCity 
    • 版本回溯,修改数据库中表City,删除其中字段ProvinceNo。在程序包管理器控制台中执行以下两条语句:
    1. PM> Update-Database -Verbose 
    2. //版本回溯 
    3. PM> Update-Database –TargetMigration:"201309201643300_AddCity.cs" 
    • 生成数据库版本之间的Sql脚本,只生成,不执行
    1. Update-Database -Script -SourceMigration:"201309201643300_AddCity.cs" -TargetMigration:"201309201708043_ModifyCity.cs"  

    2.EF Code First Migrations语句的其他参数

    为指定的DbContext启用数据库迁移

    1. PM> Enable-Migrations -ContextTypeName Portal.PortalContext 

    设置是否允许自动迁移

    1. Enable-Migrations 

    生成的Configuration.cs类文件的构造函数

    1. public Configuration() 

    2. AutomaticMigrationsEnabled = false

    Enable-Migrations指定项目名称

    1. PM> Enable-Migrations -StartUpProjectName Portal 

    如果在“Package Manager Console”中选择了默认项目可以不设置“-StartUpProjectName”参数;如果多次执行此命令可以添加-Force参数。

    查看所执行的Sql语句 -Verbose指令

    1. Update-Database -Verbose  
  • 相关阅读:
    Convert.ToInt32()和int.Parse()的区别
    C# 提取字符串中的数字
    asp.net FileUpload 控件上传文件 以二进制的形式存入数据库并将图片显示出来
    angularjs如何在ng-repeat过程中控制字符串长度超过指定长度后面内容以省略号显示
    html label 标签的 for 属性
    bootstrap-paginator 分页控件的使用
    时间戳的转换
    Server.MapPath() 解析
    Angularjs 日期格式转换
    1.docker 慕课入门
  • 原文地址:https://www.cnblogs.com/mmry/p/7071115.html
Copyright © 2011-2022 走看看