EF6 CodeFirst代码迁移笔记

本文详细介绍如何使用Entity Framework进行数据库迁移,包括创建迁移、更新数据库、配置自动迁移及使用migrate.exe进行命令行迁移的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一次创建迁移:

在程序包管理器控制台中,执行命令:Enable-Migrations(默认项目一定要执行EF所在的项目,如下图)

(PS:如果对于一个已经存在的数据使用迁移命令的时候,执行方法Add-Migration InitialCreate -IgnoreChangesIgnoreChanges 标识用于确保这次迁移不会做任何事。执行它会在数据库中创建migrations 表,migrations 表是一个对数据库迁移之前的快照。)

执行结果如下图,项目中多了一个文件夹《Migrations》:

创建迁移命名(UPDATE)

在程序包管理器控制台中,执行命令:Add-Migration,执行结果如下图,多出一个文件。

执行迁移

在程序包管理器控制台中,执行命令:Update-Database -Verbose,Verbose为可选项,不填时,执行最后一个迁移命令。完成迁移

 

----------------------------------------------------------------------------我只是一个无脑的分隔符---------------------------------------------------------------------

下图为完整的程序包管理器控制台中的执行命令与输出:

-------------------------------------------------------------------------我只是一个无脑的分隔符--------------------------------------------------------------------

 

每次迁移太累,所以有一个自动迁移的命令写到WEB项目中的global.asax中

1、修改《Migrations》下的文件Configuration,将类的定义《internal》修改为《public》

2、在启动项目中的global.asax中的《Application_Start》中添加添加代码

/*执行CODEFIRST的自动迁移*/
Database.SetInitializer<ModelCodeFirst>(new MigrateDatabaseToLatestVersion<ModelCodeFirst, CXZD.DataModel.Migrations.Configuration>());
var dbMigrator = new DbMigrator(new CXZD.DataModel.Migrations.Configuration());
dbMigrator.Update();



关于使用migrate.exe,命令行进行迁移

文章来源参考:https://www.cnblogs.com/fzrain/p/5583832.html

首先复制migrate.exe至<项目文件夹>\bin文件夹。(在使用 NuGet 安装实体框架时,migrate.exe 位于下载包的 tools 文件夹中。在 <项目文件夹>\packages\EntityFramework.<版本>\tools 中)

执行以下命令(从指定WEBCONFIG中读数据库连接,迁移DLL中的实例,\force 强制执行)

Migrate.exe <你的上下文所在的程序集>.dll /startupConfigurationFile="..\web.config" \force

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值