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. linux(11)配置环境变量

    前言 在自定义安装软件的时候,经常需要配置环境变量,下面进行详细解析 & nbsp; 环境变量配置文件 用户 配置文件 系统环境 /ect/profile /etc/bashrc /etc/e ...

  2. HDFS查看文件的前几行-后几行-行数

    随机返回指定行数的样本数据hadoop fs -cat /test/gonganbu/scene_analysis_suggestion/* | shuf -n 5返回前几行的样本数据hadoop f ...

  3. 【noi 2.6_8786】方格取数(DP)

    题意:N*N的方格图每格有一个数值,要求从左上角每步往右或往下走到右下角,问走2次的最大和. 解法:走一次的很好想,而走2次,不可误以为先找到最大和的路,再找剩下的最大和的路就是正解.而应该认清动态规 ...

  4. Codeforces Round #177 (Div. 2) B. Polo the Penguin and Matrix (贪心,数学)

    题意:给你一个\(n\)x\(m\)的矩阵,可以对矩阵的所有元素进行\(\pm d\),问能否使得所有元素相等. 题解:我们可以直接记录一个\(n*m\)的数组存入所有数,所以\((a_1+xd)=( ...

  5. Cell 动态行高文字显示不全问题探索

    目录 问题概述 一.新建工程 二.尝试复现问题 尝试解决 修改contentLblBtmCon优先级为High(750) 修改contentLblBtmCon优先级为Low(250) 小结 其他解决思 ...

  6. 整体算力提升40% 芯片级安全防护 | 阿里云发布第七代ECS云服务器

    2 月 8 日,阿里云宣布推出第七代 ECS 云服务器产品家族,基于最新的神龙架构,相较于上一代整体算力提升 40%,容器部署密度最大可提升 6 倍,是最佳的云原生载体,此外全量搭载安全芯片,实现&q ...

  7. 国产网络测试仪MiniSMB - 如何配置VLAN数据流

    国产网络测试仪MiniSMB(www.minismb.com)是复刻smartbits的IP网络性能测试工具,是一款专门用于测试智能路由器,网络交换机的性能和稳定性的软硬件相结合的工具.可以通过此以太 ...

  8. nginx的log、upstream和server

    一.log 首先一个log格式化的例子. #配置格式main的log log_format main '$host $status [$time_local] $remote_addr [$time_ ...

  9. 1054D Changing Array 【位运算+思维】

    题目:戳这里 题意:两个数n,k,满足给的n个数小于2的k次方.每个数可以进行一次操作,即把a[i]换成a[i]^(1<<k-1);求最多的连续区间数使得 区间[L,R] (1<=L ...

  10. 图解算法——KMP算法

    KMP算法 解决的是包,含问题. Str1中是否包含str2,如果包含,则返回子串开始位置.否则返回-1. 示例1: Str1:abcd123def Str2:123d 暴力法: 从str1的第一个字 ...