每个环境使用多个连接字符串的单个DbContext

时间:2016-05-29 09:12:43

标签: c# .net entity-framework connection-string dbcontext

我知道目前我加入的一组开发人员不使用实体框架,但是我可以使用它。

目前,他们的连接字符串存储在web.config(或app.config

<add name="LH_RPMDB" 
     connectionString="data source=localhostdb;Database=dbsim;user id=sim;password=sim;Application Name=SIM-LH;" 
     providerName="System.Data.SqlClient" />
<add name="DEV_RPMDB" 
     connectionString="data source=devdb;Database=dbsim;user id=sim;password=sim;Application Name=SIM-dev;" 
     providerName="System.Data.SqlClient" />
<add name="QA_RPMDB" 
     connectionString="data source=qadb;Database=dbsim;user id=sim;password=sim;Application Name=SIM-qa;" 
     providerName="System.Data.SqlClient" />

现在他们告诉我将LH用于localhost,然后他们会在上层环境中与DEVQA一致。

我不确定他们是否正在“检测”哪个服务器的URL,因为我是团队新手。我只是想让我的DbContext使用正确的数据库连接字符串。

目前我只有一个DbContext,其中包含一个连接字符串,因此

public class RPMContext : DbContext

但我看到“他们”正在使用这样的代码:

ws.Url = ConfigurationSettings.AppSettings(ConfigurationSettings.AppSettings("Environment") + "_SNTRAX")

但是,我想利用单个DbContext的所有环境利用多个连接字符串。

我找到了一些显示此示例web.config

的代码
<connectionStrings>
    <add name="DefaultConnection" 
         connectionString ...

然后

public TrackerContext() : base("Name=DefaultConnection") {}

我看到的另一个例子是

public partial class HOLDbEntities
{
    public HOLDbEntities(string connectionString)
        : base(connectionString) 

这是我看过的一篇stackoverflow文章,它并没有真正让我到达我想去的地方

Entity Framework - using the same DbContext with different connection strings

我想要什么?我知道我需要在app.config中使用所有环境连接字符串(不使用web.config和这个项目,因为它是一个控制台应用程序)。

我不知道的是如何知道我在申请中的环境有点虚拟证明并且只是“自动”工作“

我正在考虑读取URL,但实际上它是一个控制台应用程序所以我想知道每个服务器环境是否应该更改用于哪个连接字符串的appsetting,因此“LH”与“DEV”和“ QA“然后是其他几个......

思想?

1 个答案:

答案 0 :(得分:1)

也许试试Configuration Extension