Asp.Net MVC CodeFirst模式数据库迁移步骤
利用Code First模式構建好基本的類后,項目也開始搭建完畢并成功運行,而且已經將數據庫表結構自動生成了,但是,我有新的類要加入,有字段需要修改,就得將這部分修改同步到數據庫中,利用數據庫遷移,將原有結構不改動,將新建類進行單獨建表操作,或者是已有數據庫表,改變字段,那就修改表。
?
遷移步驟:
1、打開程序包管理器控制臺:工具->NuGet包管理器->程序包管理器控制臺.(當然還有其它方式也可以打開,我比較喜歡這種)
點擊后將彈出程序包管理器控制臺
極其要注意的是默認項目!!!
2、啟動數據庫遷移,執行命令:enable-migrations
由于Models不一定就是直接利用項目中已有的文件夾Models,從而當你選中啟動項目為asp.net mvc 框架類型時,此處將會報錯
具體來看我當前項目的分布情況:
我將模型分離出來了,以至于當我默認選中SearchEngine為啟動項目時,在程序包管理器控制臺中輸入的第一個命令就會報錯
解決方案:選中默認項目,選擇為DbContext所在的項目,此處我的是類庫
成功操作會如下提示:
并且在DbContext同級目錄下增加了migrations目錄
3、開始數據庫遷移命令
1.Add-migration [自定義版本名稱]
輸入add-migration?updateorderheader
2.update-database
此處如果和我一樣將DbContext單獨分割出來的需要注意,需要在當前類庫的配置文件中加上數據庫的連接地址
如果是直接在asp.net mvc框架中的Models中加入的DbContext,則可不必,會直接讀取Web.Config文件中的連接字符串。
等待命令執行中時出現異常了。
? 開始尋找我電腦中的SQL Server Configuration Manage ,如果有則打開,找到
?
?配置TCP/IP協議為已啟用即可。我的本地沒有該工具,只能通過如下方式找到該處,點擊我的電腦右鍵->管理->服務和應用程序->SQLServer配置管理器? ? ?( 兩次找這工具都沒找到,貌似都是直接從這解決的),?重新輸入命令,等待執行
初步成功,由于數據庫中有些表無需更改,我們可以在migrations目錄中,更改需要增加或修改的具體表
通過修改其中的CreateTable/DropTable,可以控制哪些表需要改動
namespace SAssassin.EF.Model.Migrations {using System;using System.Data.Entity.Migrations;public partial class updateorderheader : DbMigration{public override void Up(){CreateTable("dbo.MyFileInfoes",c => new{Id = c.Int(nullable: false, identity: true),FileName = c.String(),FileDescription = c.String(),FilePath = c.String(),FileType = c.Byte(nullable: false),FileSize = c.String(),FileStatus = c.Byte(nullable: false),IsPublic = c.Byte(nullable: false),UserId = c.String(),UserName = c.String(),CreateDate = c.DateTime(nullable: false),LastModityDate = c.DateTime(nullable: false),}).PrimaryKey(t => t.Id);}public override void Down(){DropTable("dbo.MyFileInfoes");}} }4、修改代碼配置,實現之后的操作沒那么麻煩
修改migrations目錄中的Configuration.cs文件,開啟自動遷移
5、在項目Global.asax的Application_Start中加上如下代碼行:
System.Data.Entity.Database.SetInitializer(new System.Data.Entity.MigrateDatabaseToLatestVersion<SAssassin.EF.Model.CodeFirst, SAssassin.EF.Model.Migrations.Configuration>());?
至此,數據庫遷移工作已經完畢了。?
?2017-10-15,望技術有成后能回來看見自己的腳步。轉載于:https://www.cnblogs.com/CKExp/p/7670582.html
總結
以上是生活随笔為你收集整理的Asp.Net MVC CodeFirst模式数据库迁移步骤的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CentOS 6安装详解及PXE 安装
- 下一篇: who are you really?