日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

EntityFramework进阶——CodeFirst数据库迁移

發布時間:2025/3/11 数据库 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 EntityFramework进阶——CodeFirst数据库迁移 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

與視覺操作界面相比,CodeFirst機制提供了一套命令行模式的遷移工具,協助開發人員有效的進行數據庫與數據模型的同步維護操作。

新建一個控制臺項目CFMigrationsDemo,選用來自數據庫的EF設計器模式,?并向其中添加一個Product.cs類文件,如下圖所示:

public class Product {public int Id { get; set; }public string Name { get; set; } }

?

Enable-Migrations :啟動此項目的遷移功能

在程序包管理器中控制臺輸入上述命令,可以看到已經啟用CodeFirst項目遷移功能,如下圖所示:


?

?Add-Migration?MigName:建立遷移文件,Add-Migration 和 MigName中間空一格,MigName為自定義名稱,表示要創建的遷移文件名稱,建議以有意義的名字來命名。

在程序包管理器控制臺輸入?Add-Migration AddProduct?以建立遷移文件,如下圖所示:

生成的遷移文件如下圖所示:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

打開遷移文件可以看到如下代碼:

public partial class AddProduct : DbMigration{public override void Up(){CreateTable("dbo.Products",c => new{Id = c.Int(nullable: false, identity: true),Name = c.String(),}).PrimaryKey(t => t.Id);}public override void Down(){DropTable("dbo.Products");}}

?這是一個繼承DbMigration的類文件,CodeFirst遷移通過自動生成的Up和Down方法記錄每一次的變動內容,以支持數據庫的升級和降級。通過調用Down方法可以將數據庫恢復至此次遷移前的狀態。

?


Update-Database:更新數據庫

接下來完成第一次遷移操作,在程序包管理器控制平臺輸入上述命令:

? ? ? ? ? ? ? ? ?

可以看到遷移已經順利完成,在原來的數據庫中添加了一個Product表:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

?


結構變動遷移?

在Product.cs類中,添加一個字段Price:

public class Product{public int Id { get; set; }public string Name { get; set; }public int Price { get; set; }}

重新打開程序包管理控制臺對話框,在其中鍵入Add-Migration AddProductPrice添加一個遷移文件,再執行一次Update-Database指令,界面如下圖所示:

?數據庫已經生成Price字段屬性:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

?


查看SQL?

Update-Database —Verbose:?每一次遷移是通過SQL語句來完成數據庫更新操作的,如果想要查看所使用的的SQL語句,可以加上-Verbose標志。

在Prodcut.cs類文件上增加屬性Quantity以創建可以存儲商品數量的字段:

public class Product{public int Id { get; set; }public string Name { get; set; }public int Price { get; set; }public int Quantity { get; set; }}

首先執行Add-Migration AddProductQuantity命令添加遷移文件,在執行一次Update Database-Verbose命令,這個過程除了完成遷移操作外,同時會顯示執行遷移的SQL語句,如下圖所示:


指定遷移?

Update-Database -TargetMigration:MigrationName:Update-Database 和 -TargetMigration之間有空格。在執行Update—Database命令時,可以進一步指定所要遷移的版本,現在執行Update-Database -TargetMigration:AddProductQuantity,這是當前最新的版本,因此不會起作用。再執行前一個版本的遷移,執行Update-Database-TargetMigration:AddProductPrice命令,會導致降級。

? ? ? ? ? ? ? ? ?

上述過程會導致降級,執行AddProductQuantity中的Down方法刪除Quantity字段,恢復到AddProduct的狀態。?

?

?

總結

以上是生活随笔為你收集整理的EntityFramework进阶——CodeFirst数据库迁移的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 黄色av电影网站 | 欧美丝袜视频 | 99爱在线视频 | 超能一家人电影免费喜剧在线观看 | 99国产在线观看 | 中文字幕av专区dvd | 亚洲午夜精品久久久久久app | 久久h视频 | a级片中文字幕 | 中文字幕亚洲一区二区三区 | 丁香激情综合 | 亚洲精品无码久久久 | 国产一区二区免费电影 | 西比尔在线观看完整视频高清 | www视频免费观看 | 成人午夜性视频 | 亚洲欧美另类一区 | 欧美另类videos | 欧美freesex黑人又粗又大 | 免费观看黄一级视频 | 狠狠操人人干 | 吞精囗交69激情欧美 | 激情福利视频 | 在线观看视频一区 | 最新免费av| 国产嫩草在线观看 | 天天看片天天干 | 日韩av综合网 | 色涩综合 | 先锋资源国产 | 欧美一区二区三区久久综合 | 午夜时刻免费入口 | 国产aa视频 | 久久久夜色精品亚洲 | 国产精品一区二区在线 | 精品+无码+在线观看 | 成人亚洲网站 | 在线观看成年人视频 | 亚洲中文字幕一区二区 | 久久视频免费 | 国产成人免费在线 | 日本手机看片 | 国产精品自拍第一页 | 日本福利一区二区 | 亚洲国产精品视频在线观看 | 免费裸体视频女性 | 97精品国产露脸对白 | 99热久| 91新网站| 黄色小视频免费观看 | 青春草av | wwwxxxxx日本| 国产网红主播精品av | 激情噜噜 | 91精品国产欧美一区二区成人 | 中国国语农村大片 | 特大黑人巨交吊性xxxx视频 | 在线观看羞羞漫画 | 永久免费看mv网站入口78 | 色狠狠久久av大岛优香 | 日本精品一区二区视频 | 婷婷深爱网 | 国产福利免费在线观看 | 后宫秀女调教(高h,np) | 亚洲 欧美 日韩 国产综合 在线 | a级黄色片免费看 | 黄色91在线观看 | 99视频+国产日韩欧美 | 男生插女生的网站 | 中国黄色录像一级片 | 人妖和人妖互交性xxxx视频 | 国产美女视频一区二区 | 亚洲一本二本 | 亚洲av无码精品一区二区 | 久久成人久久 | 337p色噜噜| 婷婷亚洲综合五月天小说 | 一级黄色录像大片 | 中文字幕在线日韩 | 男女羞羞无遮挡 | 99久久久无码国产精品 | www精品视频| 国产精品久久久久久69 | 欧美人体做爰大胆视频 | 久久久这里有精品 | 婷婷午夜天 | 欧美性视频一区二区三区 | 制服诱惑一区二区三区 | 免费观看黄色 | 欧美囗交做爰视频 | 国产高清精品一区二区三区 | 三级欧美韩日大片在线看 | 成人免费视频免费观看 | 午夜精品电影 | av福利在线播放 | 久久无码人妻丰满熟妇区毛片 | 三级全黄视频 | 91素人约啪| 国产日韩欧美精品在线 |