实体框架数据库首先是100多个SQL Server数据库的动态连接字符串

时间:2015-02-20 09:12:29

标签: c# entity-framework

我是Entity Framework的新手,想知道如何在代码中修改连接字符串。

这是我的代码

using (var context = new PushjobModel.PushjobEntities())
{
    var list = context.GetAllActivePushjobs();

    foreach (PushjobModel.Pushjob item in list)
    {
        item.IsActive = false;
        item.IsSent = true;
    }

    context.SaveChanges();
}

我的ASP.NET webforms应用程序中有一个配置文件,其中包含100多个数据库的连接字符串列表。在我调用context.GetAllActivePushjobs();之前,我想更改连接字符串。

使用旧的 ADO.NET 我已经使用了以下方法很长时间并且它运行良好

spPremisesReadTableAdapter taPremises = new spPremisesReadTableAdapter();

taPremises.Connection.ConnectionString = GetConnectionString(CompanyName);

taPremises.GetData();
...

public static void GetConnectionString(string CompanyName)
{
    string connectionstring = System.Web.Configuration.WebConfigurationManager.ConnectionStrings[CompanyName].ConnectionString;
}

有人可以帮忙吗?

3 个答案:

答案 0 :(得分:1)

我认为你要找的是班级EntityFrameworkConnectionStringBuilder

查看MSDN page

答案 1 :(得分:0)

您只需要为DbContext的构造函数提供连接字符串条目的名称:

using (var context = new PushjobModel.PushjobEntities(name-of-connection-string-here))
{
   .....
}

答案 2 :(得分:0)

可能你可以试试这个:

using (var context = new PushjobModel.PushjobEntities(GetConnectionString(CompanyName)))
{
    var list = context.GetAllActivePushjobs();

    foreach (PushjobModel.Pushjob item in list)
    {
        item.IsActive = false;
        item.IsSent = true;
    }

    context.SaveChanges();
}

public static void GetConnectionString(string CompanyName)
{
    string connectionstring = System.Web.Configuration.WebConfigurationManager.ConnectionStrings[CompanyName].ConnectionString;
}