Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在DataContext中更改数据库名称_C#_Sql Server_Linq To Sql_Odbc_Datacontext - Fatal编程技术网

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

C# 如何在DataContext中更改数据库名称,c#,sql-server,linq-to-sql,odbc,datacontext,C#,Sql Server,Linq To Sql,Odbc,Datacontext,我创建的代码可以很好地处理我的生产数据库。但我想要一种简单的方法来更改数据库名称。这是一种无需进一步操作和代码重复的方式。我怎么能做到 DataTrackerClassesDataContext ctx = new DataTrackerClassesDataContext(); // !!! I cant change the property because it's readonly: //ctx.Connection.Database = "MyDB_1"; //ctx.Connec

我创建的代码可以很好地处理我的生产数据库。但我想要一种简单的方法来更改数据库名称。这是一种无需进一步操作和代码重复的方式。我怎么能做到

 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);
}
我有数据库“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);
}

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

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

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

DataTrackerClassesDataContext ctx = new DataTrackerClassesDataContext(connectionString);

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

谢谢,这就是我需要的!这是LINQ到SQL,不是两个:)顺便问一下,为什么使用它而不是实体框架?这就是web.config的用途。