這篇文章主要為大家展示了“asp.net mvc CodeFirst模式實現(xiàn)數(shù)據(jù)庫遷移的示例分析”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“asp.net mvc CodeFirst模式實現(xiàn)數(shù)據(jù)庫遷移的示例分析”這篇文章吧。
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:域名申請、網(wǎng)頁空間、營銷軟件、網(wǎng)站建設(shè)、溆浦網(wǎng)站維護、網(wǎng)站推廣。利用Code First模式構(gòu)建好基本的類后,項目也開始搭建完畢并成功運行,而且已經(jīng)將數(shù)據(jù)庫表結(jié)構(gòu)自動生成了。
但是,我有新的類要加入,有字段需要修改,那怎么辦呢,刪庫,跑路 ? 哈哈
利用數(shù)據(jù)庫遷移,將原有結(jié)構(gòu)不改動,將新建類進行單獨建表操作,或者是已有數(shù)據(jù)庫表,改變字段,那就修改表。
遷移步驟:
1.打開程序包管理器控制臺:工具->NuGet包管理器->程序包管理器控制臺.(當然還有其它方式也可以打開,我比較喜歡這種)
點擊后將彈出程序包管理器控制臺
極其要注意的是默認項目!?。?/p>
2.啟動數(shù)據(jù)庫遷移,執(zhí)行命令:enable-migrations
由于Models不一定就是直接利用項目中已有的文件夾Models,從而當你選中啟動項目為asp.net mvc 框架類型時,此處將會報錯
具體來看我當前項目的分布情況:
我將模型分離出來了,以至于當我默認選中SearchEngine為啟動項目時,在程序包管理器控制臺中輸入的第一個命令就會報錯
解決方案:選中默認項目,選擇為DbContext所在的項目,此處我的是類庫
成功操作會如下提示:
并且在DbContext同級目錄下增加了migrations目錄
3.開始數(shù)據(jù)庫遷移命令
1.Add-migration [自定義版本名稱]
輸入add-migrationupdateorderheader
2.update-database
輸入update-database
此處如果和我一樣將DbContext單獨分割出來的需要注意,需要在當前類庫的配置文件中加上數(shù)據(jù)庫的連接地址
如果是直接在asp.net mvc框架中的Models中加入的DbContext,則可不必,會直接讀取Web.Config文件中的連接字符串
等待命令執(zhí)行中......
出現(xiàn)異常了
開始尋找我電腦中的SQL Server Configuration Manage ,如果有則打開,找到
配置TCP/IP協(xié)議為已啟用即可。
我的本地沒有該工具,只能通過如下方式找到該處
點擊我的電腦右鍵->管理->服務(wù)和應(yīng)用程序->SQLServer配置管理器 ( 兩次找這工具都沒找到,貌似都是直接從這解決的)
重新輸入命令,等待執(zhí)行
初步成功
由于數(shù)據(jù)庫中有些表無需更改
我們可以在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.修改代碼配置,實現(xiàn)之后的操作沒那么麻煩
修改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>());
到此,數(shù)據(jù)庫遷移工作已經(jīng)完畢了。
以上是“asp.net mvc CodeFirst模式實現(xiàn)數(shù)據(jù)庫遷移的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
分享標題:asp.netmvcCodeFirst模式實現(xiàn)數(shù)據(jù)庫遷移的示例分析-創(chuàng)新互聯(lián)
文章位置:http://www.rwnh.cn/article24/csegce.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、ChatGPT、網(wǎng)站設(shè)計、做網(wǎng)站、關(guān)鍵詞優(yōu)化、網(wǎng)站策劃
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容