如何使实体框架迁移使用web.config转换?

Dou*_*ain 5 entity-framework web-config web.config-transform

当您应用任何命令时

  • '更新数据库'
  • “添加迁移”

EF使用主要web.config中的连接字符串

即使您已使用xml转换配置了web.debug.config和web.release.config

这意味着,我必须冒险冒险忘记web.config在发布之前更改我的真实身份。

Rob*_*ell 4

我认为在本地运行 web.config 转换的唯一方法是使用带有以下参数的 MSBuild,其中 [YourTransformationConfiguration] 是要使用的配置的名称,例如调试或发布:

msbuild PathToProject /T:Package /P:Configuration=[YourTransformationConfiguration] /P:AutoParameterizationWebConfigConnectionStrings=False
Run Code Online (Sandbox Code Playgroud)

其输出可在以下位置获得:

[ProjectFolder]\obj\[YourTransformationConfiguration]\Package\PackageTmp
Run Code Online (Sandbox Code Playgroud)

从这里,您可以在程序集上运行 migrate.exe,这类似于运行 Update-Database PowerShell 脚本。如果您使用 Nuget,则它将位于EntityFramework 包的工具文件夹中。我在启动和运行它时遇到了一些麻烦,但这里有一个有用的答案 Stack Overflow 答案:

让 Migrate.exe 正常工作