1. 程式人生 > >EF數據遷移命令

EF數據遷移命令

控制 應該 id字段 更新 準備 使用 驗證 pac line

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

技術分享

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

技術分享

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

技術分享

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

技術分享

添加遷移和更新數據庫

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

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

技術分享

技術分享

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

技術分享

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

技術分享

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

技術分享

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

技術分享

EF數據遷移命令