EF數據遷移命令


在包管理器控制台中輸入命令“enable-migrations”,然后按Enter鍵!Visual Studio將生成一個名為“Configurations.cs”的文件; 你可以安全地忽略它,但你需要保持它。

nopCommerce中的EF遷移 - 啟用遷移

EF遷移設置的最后一步是在包管理器控制台中輸入命令“add-migration InitialMigration -IgnoreChanges”。“InitialMigration”(高亮的黃色)是您想要給當前遷移的名稱,“IgnoreChanges”句柄是告訴EF Migrations您想要忽略當前數據庫:這意味着您希望EF忽略所有現有表,以便不會為現有表生成腳本。

nopCommerce中的EF遷移 - 初始遷移

因此,您將看到Visual Studio生成的對應於您剛才添加的遷移(InitialMigration)的新.cs文件。如果你查看文件,它本質上是一個空白文件,由於我們在上一步使用了-IgnoreChanges句柄。

要實際將此遷移保存到數據庫,請在包管理器控制台中運行命令“update-database”。您的數據庫現在可以進行實際的EF遷移任務!

nopCommerce  - 更新數據庫中的EF遷移

添加遷移和更新數據庫

現在,假設我們想鏈接博客和產品,其中一個產品可以有多個BlogPost談論產品本身。我們需要一個一對多的產品和BlogPost之間的關系。

實質上,我們需要的是BlogPost中的新ProductId字段,以及Product中的ICollection <BlogPost>屬性。下面的截圖總結了我們應該添加到Product.cs和BlogPost.cs(在Nop.Core項目中)的更新。

nopCommerce中的EF遷移 -  BlogPost.cs

nopCommerce中的EF遷移 -  Product.cs

現在,您已在域模型上准備好屬性,您還需要設置配置並告知Entity Framework如何格式化參數,例如關系,以及字段是否是可選的/必需的。在Nop.Data中打開BlogPostMap.cs,輸入以下行,我們告訴EF 產品(或ProductId)是一個可選屬性(意味着它可以有NULL作為值),一個產品可以有很多BlogPost,使用ProductId作為BlogPost和Product之間的外鍵。

nopCommerce中的EF遷移 -  BlogPostMap

我們現在有足夠的信息來指示Entity Framework生成遷移,因此再次打開Package Manager Console,並輸入命令“add-migration AddProductToBlogPost”。

EF遷移在nopCommerce  - 添加產品到博客文章

此命令會使Visual Studio生成類似於以下內容的.cs文件:

nopCommerce中的EF遷移 - 生成的遷移CS文件

要實際生成SQL腳本並更新數據庫,請在Package Manager控制台中再次運行命令“update-database”。現在,要驗證數據庫是否正確更新,請在數據庫中打開BlogPost表,並檢查新字段,外鍵等是否確實已添加。

nopCommerce中的EF遷移 - 驗證數據庫


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM