使用Code First Migrations依据代码更新数据库结构
ADO.NET團(tuán)隊(duì)最近發(fā)布了Code First Migrations Beta 1 for Entity Framework (EF)。該程序包已經(jīng)在NuGet提供,位于EntityFramework.Migrations名稱下。
應(yīng)用程序開發(fā)領(lǐng)域中的代碼先行(Code First)方法指的是先在代碼中創(chuàng)建對(duì)象模型,然后按照模型生成數(shù)據(jù)庫結(jié)構(gòu)。這與“模型先行開發(fā)”類似,那種方式會(huì)使用Visual Studio中的EF設(shè)計(jì)器創(chuàng)建數(shù)據(jù)模型。(想要查看代碼先行開發(fā)方式的實(shí)際效果,你可以訪問ADO.NET團(tuán)隊(duì)的EF 4.2代碼先行演練。)
Code First Migrations這種工具可以基于代碼中所做的改變,以遞增的方式更新已存的數(shù)據(jù)庫結(jié)構(gòu)。這可以按照自動(dòng)或者手動(dòng)的方式進(jìn)行(微軟將其稱之為“帶有魔 力的”和“沒有魔力的”遷移),采用哪種方式依賴于對(duì)模型所做出的更新的類型。能夠自動(dòng)完成的變更類型有:
- 增加屬性或者類
- 對(duì)屬性和類重命名(想要使其正常工作,需要編寫一些腳本)
- 對(duì)列(column)或者表(table)重命名,而不對(duì)屬性或類重命名
- 刪除屬性
在任何一種情況下,執(zhí)行命令Update-Database就會(huì)自動(dòng)把變更應(yīng)用到數(shù)據(jù)庫結(jié)構(gòu)上。
對(duì)于所有其它更新,Code First Migrations會(huì)使用Add-Migration命令創(chuàng)建變更數(shù)據(jù)庫的腳本。這些遷移操作都會(huì)保存,并加上時(shí)間戳,讓我們可以回滾到數(shù)據(jù)庫結(jié)構(gòu)的上 一個(gè)版本。除了能夠?qū)?shù)據(jù)庫結(jié)構(gòu)做出變更之外,遷移操作中還可以包括用于操作數(shù)據(jù)的SQL命令。想要提交遷移操作,你只需要再次運(yùn)行Update- Database命令。為了對(duì)數(shù)據(jù)庫進(jìn)行復(fù)制,Code First Migrations也可以使用Update-Database來創(chuàng)建SQL腳本:
Update-Database –TargetDatabase:"NewDatabase" –Script
ADO.Net團(tuán)隊(duì)已經(jīng)提供了使用Code First Migrations的“沒有魔力”和“具有魔力的”兩種方法的演練,你可以從中獲得更多信息。
微軟聲稱,這個(gè)beta版本只包含了Code First Migrations的Visual Studio實(shí)現(xiàn),他們計(jì)劃還要引入命令行和MSDeploy的版本。
查看英文原文:Code First Migrations Updates Data Structure From Code
轉(zhuǎn)載于:https://www.cnblogs.com/shihao/archive/2011/12/09/2281502.html
與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的使用Code First Migrations依据代码更新数据库结构的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 测试支付工作思路
- 下一篇: 形成20位存储单元的物理地址