对于我当前的项目,我更喜欢在发布时将数据库更新到正确的版本,而不是首先通过App_Start运行。
似乎支持通过命令行工具"migrate.exe"手动升级,该工具与实体框架(5.0 rc2)一起提供。但我找不到任何关于其他人如何将此工具与msdeploy结合在一起以在发布而不是首次运行时升级数据库的信息。
我发现以下页面解释了如何使用migrate.exe工具:http://blog.overridethis.com/blog/post/2012/03/13/Automating-EF-43x-Data-Migrations-in-your-Build.aspx
但这迫使我以某种方式"知道"连接字符串信息。
我的最佳解决方案是:
- 在的setParameters.xml文件中配置了connectionstring发布时替换
- 论代码库的一次又一次发布使用正确的连接字符串调用migrate.exe
我搜索的似乎是"实体框架MSDeploy提供商"(请参阅:http://blogs.msdn.com/b/adonet/archive/2012/01/12/ef-4-3-beta-1-released.aspx)但他们似乎在一段时间前就放弃了这个选项
您有两个选项:
- "发布配置文件"中的"配置Visual Studio数据库"选项;或
- 在"打包/发布SQL"选项卡上配置项目属性
我还没有使用任何一个,但我正在研究,因为我会有完全相同的场景。