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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

ASP.NET Core MVC with EF Core-迁移

發布時間:2023/12/4 asp.net 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ASP.NET Core MVC with EF Core-迁移 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

當你開發一個新的應用程序的時候,你的模型頻繁的變化,而每一次的數據模型的改變,將使它與數據庫不同步。你通過配置EF Core,使得數據庫不存在時創建數據庫。每一次改變數據模型(增刪改 實體類或者改變DbContextClass),可以刪除數據庫然后重新創建一個與數據模型相匹配的數據庫,然后填充測試數據。

這種保持數據模型與數據庫同步的方法能夠工作得很好,然后卻不適用于將應用程序發布到產品中的階段。當應用程序在真實的產品的時候,通常產品中包含有你需要保留的數據,在模型改變的時候(比如增加一個新列),你不希望丟失任何數據。EF Core 遷移功能能夠解決這個問題,它能使EF更新數據庫的結構而不用重新創建一個新的數據庫。

為了能夠使用遷移,你可以使用 Package Manager Console(PMC)或者command-line interface(CLI 命令行)。

用于CLI的EF工具 是在 Microsoft.EnrityFrameworkCore.Tools工具包中提供,對于 vs 15.7的版本,已經默認添加到了MVC模板中的 Microsoft.AspNetCore.App 包中。不用像官方教程介紹的,需要手工添加。

?<PackageReference Include="Microsoft.AspNetCore.App" />

更改連接字符串

更改appsettings.josn文件中數據庫連接字符串中的數據庫名稱為以前未使用的過名稱。這樣的改變使項目能使用 first migration 創建一個新的數據庫。這并不是一個開始使用遷移必需的操作,但你會看到這是一個好主意。

另外一個方法是從SSOX(SQL Server Object Exporer SQL對象資源管理器)或CLI中刪除數據庫。

刪除數據庫的CLI命令是:dotnet ef database drop

創建初始化遷移
在解決方案管理器中,右鍵 項目文件夾----在彈出的菜單中選擇 在文件資源管理器 中打開--------在地址欄輸入cmd.

在控制臺窗口中輸入:dotnet ef migrations add InitialCreate?

EF產生的代碼會從頭開始創建數據庫。

會在解決方案管理器中 建立一個Migrations 文件夾,在其中,有一個同名加時間戳的cs文件。Up方法創建與數據模型實體集對應的數據庫表格,down方法刪除它們。

如果你創建初始化遷移的時候,數據庫已經存在。創建數據庫的代碼依然會生成但是它不會運行,因為數據庫已經與數據模型相匹配。當你發布一個應用到另外一個環境的時候,數據庫不存在,此代碼將會創建數據庫,所以,這是一個好的主意先來測試它。

數據模型快照(Data Model snashot)

?遷移創建了現有數據庫結構的快照。當你增加一個遷移,通過對比數據模型和快照文件,決定改變了什么。

刪除遷移的控制臺命令是 dotnet ef migrations remove?,會刪除遷移和保證快照 被正確的重置。

應用遷移到數據庫

應用遷移更新數據庫的CLI:dotnet ef database update

數據庫中的EFMigrationsHistory表 會跟蹤哪些遷移被應用到數據庫。

原文地址https://www.cnblogs.com/liuyuanhao/articles/9442266.html

.NET社區新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com

總結

以上是生活随笔為你收集整理的ASP.NET Core MVC with EF Core-迁移的全部內容,希望文章能夠幫你解決所遇到的問題。

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