【发布时间】:2013-11-21 10:31:32
【问题描述】:
我有一个包含四个实体框架代码优先项目的 Visual Studio 解决方案。我经常将项目部署到多个环境,因此使用多个连接字符串。
因此,如果我需要更新我的所有环境,我会为其中一个项目执行以下操作:
PM> Update-Database -Verbose -StartupProjectName "Sln.DataAccess1" -ConnectionStringName "DevContext"
PM> Update-Database -Verbose -StartupProjectName "Sln.DataAccess1" -ConnectionStringName "TestContext"
PM> Update-Database -Verbose -StartupProjectName "Sln.DataAccess1" -ConnectionStringName "DemoContext"
PM> Update-Database -Verbose -StartupProjectName "Sln.DataAccess1" -ConnectionStringName "StagingContext"
您可以想象 Sln.DataAccess2、Sln.DataAccess3 和 Sln.DataAccess4 的延续...
有没有更简单的方法来做到这一点?例如同时运行?我还没有找到解决方案。
不,我不想使用 EF:s 使用像 Database.SetInitializer(new DropCreateDatabaseAlways<DbContext>()); 这样的初始化程序自动更新数据库。
(我不介意有一个 GUI,只是指出哪个连接字符串用于哪个项目,因为它现在有很多复制和粘贴。但最好是有一个 Update-Database-All 命令,用于运行以某种方式同时发生。)
【问题讨论】:
-
您正在部署 Web 应用程序吗? Web.config 设置可以作为进程的一部分进行更改msdn.microsoft.com/en-us/library/dd394698(v=vs.100).aspx
-
嗯,是的,但我希望能够分别部署数据库和 Web 文件。
-
这不会破坏应用程序吗?
-
通常我们只是更改种子数据或一些简单的东西 - 我们不想启动整个发布 Web 流程(我们通过 TFS 构建+部署)。我仍然想“感觉”我可以分别控制数据库和网络应用程序:)
标签: .net entity-framework visual-studio-2012 ef-code-first nuget