首页 > 数据库技术 > 详细

Entity Framework Code First 迁移数据库

时间:2014-02-27 07:54:51      阅读:749      评论:0      收藏:0      [点我收藏+]

新版EF,系统实现过程中如果对Model进行更改,队形修改数据库并不能正常运行项目,需要借助Code First 手动迁移数据库

首先启用迁移,允许迁移Context

Tools->Library Package Manager->Package Manager Console 运行 Enable-Migrations 

执行命令在项目中创建Migrations 文件夹 ,包含两个类

Configuration 类:给定迁移的相关配置

InitialCreate 类:继承迁移基类,实现Up和Down方法,Up方法数据库向上迁移时执行,Down方法数据库向下迁移时执行。主要是实现数据库的建表,删除表,添加列,删除列,创建主键、外键,删除主键、外键,重命名等操作。

bubuko.com,布布扣

 

接下来就可以生成迁移和执行迁移

Add-Migration + 迁移名  将根据自创建上次迁移以来您对模型所做的更改,为下一次迁移搭建基架。

  该操作生成一个迁移名定义的类,和InitialCreate 类一样,定义了相应的数据库更改操作。

Update-Database 将所有挂起的迁移应用于数据库。

  迁移到特定版本(包括降级)  运行 Update-Database –TargetMigration: 迁移名

  如果要一直回滚到空数据库,可以使用 Update-Database –TargetMigration: $InitialDatabase 

如何实现数据的移动和更改(如新创建的列,采用已存在列的数据填充):

  Sql("相应的SQL数据操作语句");

获取 数据库迁移 SQL 脚本(如将更改推送到测试服务器或其他开发人员机器)

  运行 Update-Database 命令,但此时指定 –Script 标记,使更改写入脚本而不应用。

  希望产生的脚本是从一个空数据库($InitialDatabase)到最新的版本 (-TargetMigration为空即可

    Update-Database -Script -SourceMigration: $InitialDatabase  -TargetMigration:

应用程序启动时自动升级

  通过注册 MigrateDatabaseToLatestVersion 数据库初始化器来实现这一点,数据库初始化器只包含一些逻辑检查用于确保数据库被正确设置,这个逻辑检查将会在context 第一次被使用的时候执行。

  启动时通过 Database.SetInitializer(new MigrateDatabaseToLatestVersion<XXContext,Configuration>()); 设定MigrateDatabaseToLatestVersion 初始值设定项

Entity Framework Code First 迁移数据库,布布扣,bubuko.com

Entity Framework Code First 迁移数据库

原文:http://www.cnblogs.com/my-tzc/p/EntityFramework.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!