在项目中使用Entity Framework的Code First模式,进行数据迁移时,Migration文件夹中存放的是每一次Entity的修改如何同步到数据的操作方法,每个文件中都只有Up和Down这两个方法。例如第一次数据迁移时,会创建数据表,在程序包管理控制台中输入命令:add-migration migrationname,会生成一个migrationname.cs的文件,在对应的Migration类文件的代码如下:

public partial class Initial : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "Posts",
columns: table => new
{
Id = table.Column<int>(nullable: false)
.Annotation("Sqlite:Autoincrement", true),
Title = table.Column<string>(nullable: true),
Author = table.Column<string>(nullable: true),
Body = table.Column<string>(nullable: true),
LastModified = table.Column<DateTime>(nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Posts", x => x.Id);
});
} protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "Posts");
}
}

再在程序包管理控制台中输入命令:update-database,即可将Entity的设计同步到数据库中。

当后期对Entity进行了修改时,再次运行 add-migration migrationname 和update-database这两个命令,即可再生成一个同步文件,并将修改更新到数据库中。

注意两个问题:

  1、不能随意删除Migration文件夹内的同步文件,否则数据同步会失败,问题解决很麻烦。

  2、每次add-Migration时取的文件名不能重名

备注:seed方法

Seed() 方法是什么呢? 依照它原来的注解 "This method will be called after migrating to the latest version", 字面上是说这个 Seed() 方法会在我们 migrate 到最近的版本时会被呼叫; 实际上就是说, 如果我们已经设定好 Migration , 当我们执行了 Update-Database 指令时, EF 就会自动去呼叫并执行这个 Seed() 方法。

  

最新文章

  1. SQL Server 自定义聚合函数
  2. Windows上帝模式,上帝应该就是这样使用Windows的
  3. 01_iOS开发需要准备什么?
  4. OkHttp 3.4入门
  5. flex4的s:states和mx:states的区别
  6. paper 64:尺度空间(Scale space)理论
  7. 深入理解jQuery的Event机制
  8. Adding DTrace Probes to PHP Extensions
  9. jQuery滑动导航菜单
  10. hibernate 映射&lt;五&gt;多对多双向映射
  11. android细节之禁用activity的系统的默认切换效果
  12. windows7股票的,win8残疾人,安装Han澳大利亚sinoxn个时间,sinox它支持大多数windows软体
  13. commons - lang(1) StringUtils
  14. 基于JDK1.8版本的hashmap源码笔记(二)
  15. python学习第四次笔记
  16. fopen特殊模式r+, w+, a+辨析
  17. python基础学习(七)列表
  18. java学习--构造方法
  19. MySQL— 进阶
  20. tomcat8配置SSL

热门文章

  1. ArcGis Go to XY功能代码C#
  2. 安装 ArcGISAPI31forSilverlight an i/o error occured while installing a file错误解决
  3. 使用JAVA数组实现顺序栈
  4. request.setCharacterEncoding()、response.setCharacterEncoding()的区别
  5. List、Map、set的加载因子,默认初始容量和扩容增量
  6. web 安全知识点
  7. Kafka如何保证消息不丢失不重复
  8. shell编程 之 流程控制(条件语句和循环语句)
  9. 20165234 《Java程序设计》第十周课下作业
  10. 【VMware vSphere】再谈VMware vSphere