动态传递实体连接字符串 - 具有多个环境的多个实体

时间:2016-01-29 11:21:20

标签: c# entity-framework entity-framework-4

我的项目中有多个实体。我的客户不想在web.config文件中保留任何连接字符串。因此,他们将为章鱼中的每个实体创建环境变量,并在我的项目中创建环境配置文件。所以我需要读取这个环境变量并将其传递给实体。

我不能使用参数化的构造函数,因为它需要大量的代码更改。 无法修改自动生成的实体上下文文件。

我已经尝试过使用partial class和parametarized构造函数。

public partial class SitesEntities
    {
        public SitesEntities(string conn)
            : base(GetConnectionString())
        {

        }

        public static string GetConnectionString()
        {
//code
}
}

这需要在初始化每个实体时更改代码。这对我们来说是一项具有挑战性的任务,因为我们在很多地方使用它

 using (SitesEntities entities = new SitesEntities())
{
//code
}

有人可以为此建议任何替代解决方案吗?

1 个答案:

答案 0 :(得分:0)

依赖注入将是很棒的解决这个问题。但我认为你已经提到的方式也应该有用(它很难看,但是):

public partial class SitesEntities
{
    public SitesEntities()
        : base(GetConnectionString())
    {
    }

    public static string GetConnectionString()
    {
        return Environment.GetEnvironmentVariable("my_env_varible");
    }
}

如果那不适合你,我会错过什么?

相关问题