【发布时间】:2021-12-27 03:42:15
【问题描述】:
我有一个 ASP.NET MVC 5 Web 应用程序并有以下代码:
public HAZID_DataContext() : base("HAZIDDEV")
{
System.Data.Entity.SqlServer.SqlProviderServices.UseScopeIdentity = false;
}
我希望能够根据我的工作环境设置来设置HAZIDDEV。
例如,在 web 配置中,我们有以下内容
<connectionStrings>
<add name="HAZIDTEST" connectionString="Server=DTISQLVS02\DEVELOPMENT;Database=HAZID;Trusted_Connection=True;" providerName="System.Data.SqlClient" />
<add name="HAZIDDEV" connectionString="Server=DTIDEV27;Database=HAZIDDEV;Trusted_Connection=True;" providerName="System.Data.SqlClient" />
</connectionStrings>
并希望在 web 配置中有一个像这样的变量
<appSettings>
<add key="webpages:Version" value="3.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
<add key="DefaultCulture" value="en" />
<add key="WorkEnvironment" value="Development"/>
<add key="PrefixDefaultCulture" value="false" />
<add key="SupportedCultures" value="en,fr" />
</appSettings>
所以我可以有一个HAZIDDEV、HAZIDTEST 和HAZIDPROD 连接字符串,如果我查看应用程序设置WorkEnvironment 并且它是Development,那么我将使用HAZIDDEV 作为连接。
任何帮助或见解将不胜感激
【问题讨论】:
-
请解释一下工作环境是什么意思?
-
@Carl Cummings:
base("HAZIDDEV")中的参数是配置文件中连接字符串的名称。因此,您只需要相应地修改每个环境的配置文件即可。 -
感谢我们现在所做的一切,但希望有一种方法可以让我们的所有连接字符串在配置中并基于另一个标志使用正确的连接字符串。我将问题修改为 biut mopre 以添加更多关于我们所想的代码,但它可能是不可能的
标签: asp.net-mvc entity-framework-6