2014-03-04 33 views
3

當您將喜歡的任何命令如何讓實體框架遷移使用web.config轉換?

  • '更新數據庫'
  • '添加遷移'

的EF使用連接字符串在主web.config中

即使如果你已經使用xml轉換配置web.debug.config和web.release.config

這意味着,我必須進入並冒險鍛造在發佈前改變我的真實web.config

+2

有名爲-ConnectionString和-ConnectionStringName更新的數據庫的參數。如果你想提供連接字符串本身,你可以使用-Co​​nnectionString參數並粘貼到數值中。無論是或者你可以把所有的連接字符串放在配置文件中並使用-Co​​nnectionStringName – Dismissile

回答

3

我認爲在本地運行web.config轉換的唯一方法是使用帶有以下參數的MSBuild,其中[YourTransformationConfiguration]是要使用的配置的名稱,例如,調試或發佈:

msbuild PathToProject /T:Package /P:Configuration=[YourTransformationConfiguration] /P:AutoParameterizationWebConfigConnectionStrings=False 

這些都將在輸出端:

[ProjectFolder]\obj\[YourTransformationConfiguration]\Package\PackageTmp 

從這裏你可以在你的程序集,它類似於運行更新的數據庫的PowerShell腳本運行migrate.exe 。如果您使用的是Nuget,這將位於EntityFramework軟件包的工具文件夾中。我遇到了一些麻煩得到這個啓動和運行,但有一個有用的答案堆棧溢出回答這裏:

Getting Migrate.exe to work