Entity Framework:使用Code First Migrations更新資料庫結構

weixin_34162629發表於2012-01-14

http://news.cnblogs.com/n/124604/

投遞人 曾經的夢釋出於 2011-12-08 21:13評論(2)有784人閱讀 原文連結 [收藏]                  « »

  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

相關文章