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. internal sealed class Configuration : DbMigrationsConfiguration<Portal.PortalContext> 



  7. public Configuration() 



  8. AutomaticMigrationsEnabled = true; 




  9. protected override void Seed(Portal.PortalContext context) 



  10. // This method will be called after migrating to the latest version. 


  11. // You can use the DbSet<T>.AddOrUpdate() helper extension method  

  12. // to avoid creating duplicate seed data. E.g. 

  13. // 

  14. // context.People.AddOrUpdate( 

  15. // p => p.FullName, 

  16. // new Person { FullName = "Andrew Peters" }, 

  17. // new Person { FullName = "Brice Lambson" }, 

  18. // new Person { FullName = "Rowan Miller" } 

  19. // ); 

  20. // 







  • 在程序包管理器控制台,执行语句:
  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  

EFCodeFirst Migrations数据库迁移的更多相关文章

  1. MVC5中Model层开发数据注解 EF Code First Migrations数据库迁移 C# 常用对象的的修饰符 C# 静态构造函数 MSSQL2005数据库自动备份问题(到同一个局域网上的另一台电脑上) MVC 的HTTP请求

    MVC5中Model层开发数据注解   ASP.NET MVC5中Model层开发,使用的数据注解有三个作用: 数据映射(把Model层的类用EntityFramework映射成对应的表) 数据验证( ...

  2. EF Code First Migrations数据库迁移

    1.EF Code First创建数据库 新建控制台应用程序Portal,通过程序包管理器控制台添加EntityFramework. 在程序包管理器控制台中执行以下语句,安装EntityFramewo ...

  3. C# EF Code First Migrations数据库迁移

    1.EF Code First创建数据库 新建控制台应用程序Portal,通过程序包管理器控制台添加EntityFramework. 在程序包管理器控制台中执行以下语句,安装EntityFramewo ...

  4. EF Code First Migrations数据库迁移 (转帖)

    1.EF Code First创建数据库 新建控制台应用程序Portal,通过程序包管理器控制台添加EntityFramework. 在程序包管理器控制台中执行以下语句,安装EntityFramewo ...

  5. 【EF】EF Code First Migrations数据库迁移

    1.EF Code First创建数据库 新建控制台应用程序Portal,通过程序包管理器控制台添加EntityFramework. 在程序包管理器控制台中执行以下语句,安装EntityFramewo ...

  6. [Doctrine Migrations] 数据库迁移组件的深入解析四:集成diff方式迁移组件

    场景及优势 熟悉Symfony框架之后,深刻感受到框架集成的ORM组件Doctrine2的强大之处,其中附带的数据迁移也十分方便.Doctrine2是使用Doctrine DBAL组件把代码里面的表结 ...

  7. [Doctrine Migrations] 数据库迁移组件的深入解析二:自定义集成

    自定义命令脚本 目录结构 目前的项目结构是这样的(参照代码库): 其中,db/migrations文件夹是迁移类文件夹,config/db.php是我们项目原有的db配置,migrations.php ...

  8. [Doctrine Migrations] 数据库迁移组件的深入解析一:安装与使用

    场景分析 团队开发中,每个开发人员对于数据库都修改都必须手动记录,上线时需要人工整理,运维成本极高.而且在多个开发者之间数据结构同步也是很大的问题.Doctrine Migrations组件把数据库变 ...

  9. 【EF Code First】Migrations数据库迁移

    1,打开工具->NuGet程序管理器->程序包管理器控制台 默认项目中要选择  数据访问上下文类  所在的项目 我的DB是在命名空间CodeFirst.UI下的所以选择CodeFirst. ...

随机推荐

  1. springboot中扩展ModelAndView实现net mvc的ActionResult效果

    最近在写spring boot项目,写起来感觉有点繁琐,为了简化spring boot中的Controller开发,对ModelAndView进行简单的扩展,实现net mvc中ActionResul ...

  2. B 明码

    B 明码 :汉字的字形存在于字库中,即便在今天,16点阵的字库也仍然使用广泛. 16点阵的字库把每个汉字看成是16x16个像素信息.并把这些信息记录在字节中. 一个字节可以存储8位信息,用32个字节就 ...

  3. 洛谷P3796

    题目链接  题意:有n个由小写字母组成的模式串以及一个文本串T.每个模式串可能会在文本串中出现多次.哪些模式串在文本串T中出现的次数最多. 题解:ac自动机模板加强版,开一个数组单独记录各个字符串出现 ...

  4. c++派生类中构造函数和析构函数执行顺序、判断对象类型、抽象类、虚函数

    一. 代码: 1 #include<stdio.h> 2 #include<string.h> 3 #include<algorithm> 4 #include&l ...

  5. c文件二进制读取写入文件、c语言实现二进制(01)转化成txt格式文本、c读取文件名可变

    c语言实现二进制(01)转化成txt格式文本: 下面的程序只能实现ascall对应字符转换,如果文件内出现中文字符,则会出现错误. 本程序要自己创建个文本格式的输入文件a1.txt,编译后能将文本文件 ...

  6. python自动化运维之CMDB篇-大米哥

    python自动化运维之CMDB篇 视频地址:复制这段内容后打开百度网盘手机App,操作更方便哦 链接:https://pan.baidu.com/s/1Oj_sglTi2P1CMjfMkYKwCQ  ...

  7. Gitlab 快速部署及日常维护 (一)

    一.GitLab简介GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务 二.GitLab系统架构git用户的主目录通常是/home/git(~ ...

  8. Tensorflow+InternalError: Blas GEMM launch failed

    [参考1:]https://stackoverflow.com/questions/37337728/tensorflow-internalerror-blas-sgemm-launch-failed ...

  9. git-reset All In One

    git-reset All In One git 撤销 merge $ git checkout feature-sentry $ git pull $ git checkout dev $ git ...

  10. 使用 js 实现十大排序算法: 选择排序

    使用 js 实现十大排序算法: 选择排序 选择排序 refs xgqfrms 2012-2020 www.cnblogs.com 发布文章使用:只允许注册用户才可以访问!