使用Code First Migrations依據代碼更新數據庫結構

fmms 13年前發布 | 16K 次閱讀 .NET

ADO.NET 團隊最近發布了 Code First Migrations Beta 1 for Entity Framework (EF)。該程序包已經在 NuGet 提供,位于 EntityFramework.Migrations 名稱下。

應用程序開發領域中的代碼先行(Code First)方法指的是先在代碼中創建對象模型,然后按照模型生成數據庫結構。這與“模型先行開發”類似,那種方式會使用 Visual Studio 中的 EF 設計器創建數據模型。(想要查看代碼先行開發方式的實際效果,你可以訪問 ADO.NET 團隊的 EF 4.2 代碼先行演練。)

Code First Migrations 這種工具可以基于代碼中所做的改變,以遞增的方式更新已存的數據庫結構。這可以按照自動或者手動的方式進行(微軟將其稱之為“帶有魔力的”和“沒有魔力的”遷移),采用哪種方式依賴于對模型所做出的更新的類型。能夠自動完成的變更類型有:

  • 增加屬性或者類
  • 對屬性和類重命名(想要使其正常工作,需要編寫一些腳本)
  • 對列(column)或者表(table)重命名,而不對屬性或類重命名
  • 刪除屬性

在任何一種情況下,執行命令 Update-Database 就會自動把變更應用到數據庫結構上。

對于所有其它更新,Code First Migrations 會使用 Add-Migration 命令創建變更數據庫的腳本。這些遷移操作都會保存,并加上時間戳,讓我們可以回滾到數據庫結構的上一個版本。除了能夠對數據庫結構做出變更之外,遷移操作中還可以包括用于操作數據的 SQL 命令。想要提交遷移操作,你只需要再次運行 Update-Database 命令。為了對數據庫進行復制,Code First Migrations 也可以使用 Update-Database 來創建 SQL 腳本:

Update-Database –TargetDatabase:"NewDatabase" –Script

ADO.Net 團隊已經提供了使用 Code First Migrations 的“沒有魔力”“具有魔力的”兩種方法的演練,你可以從中獲得更多信息。

微軟聲稱,這個 beta 版本只包含了 Code First Migrations 的 Visual Studio 實現,他們計劃還要引入命令行和 MSDeploy 的版本。

查看英文原文:Code First Migrations Updates Data Structure From Code

     來自: InfoQ
 本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!