我如何在DataContext中更改数据库名称

时间:2014-03-19 08:01:00

标签: c# sql-server linq-to-sql odbc datacontext

我创建了与我的生产数据库一起使用的代码。但我希望方便地更改数据库名称。它是没有进一步行动和代码重复的方式。我怎么能这样做?

我有数据库" MyDB_1"," MyDB_2" - 它充满了用于测试的数据库副本等。

通过ODBC更改连接的方法也很好。但我怎么做呢?

 DataTrackerClassesDataContext ctx = new DataTrackerClassesDataContext();

// !!! I cant change the property because it's readonly:
//ctx.Connection.Database = "MyDB_1";
//ctx.Connection.Database = "MyDB_2";

Console.WriteLine(ctx.Connection.Database);

var custQuery = 
    from m in ctx.models 
    where m.status == 1 
    select m.id;

foreach (int id in custQuery)
{
    Console.WriteLine("{0} ", id);
}

1 个答案:

答案 0 :(得分:5)

如果要为datacontext切换数据库,那么在datacontext的构造函数中,您将输入新的连接字符串。

您可以这样做以保持格式:

string connectionString = 
        string.Format("Data Source={0};Initial Catalog={1};Integrated Security=True", 
                      serverName, 
                      dataBaseName);

DataTrackerClassesDataContext ctx = new DataTrackerClassesDataContext(connectionString);

您只需根据要使用的数据库替换连接字符串。