您好,登錄后才能下訂單哦!
這篇文章主要介紹“ASP.NET的EF Core遷移怎么實現”,在日常操作中,相信很多人在ASP.NET的EF Core遷移怎么實現問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”ASP.NET的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表 會跟蹤哪些遷移被應用到數據庫。
到此,關于“ASP.NET的EF Core遷移怎么實現”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。