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

Evg*_*nov 3 c# sql-server datacontext odbc linq-to-sql

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

我有数据库"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);
}
Run Code Online (Sandbox Code Playgroud)

Tau*_*hts 5

如果要为datacontext切换数据库,则在datacontext的构造函数中输入新的连接字符串.

你会这样做来维护格式:

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

DataTrackerClassesDataContext ctx = new DataTrackerClassesDataContext(connectionString);
Run Code Online (Sandbox Code Playgroud)

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