问题描述
我们有一个 C# 桌面应用程序,它使用数据上下文进行 linq 到 sql。它在一段时间内运行良好,然后 IT 人员将数据库移动到不同的服务器。哎呀,应用程序必须用新的服务器名称重新编译。
有没有办法在运行时设置服务器名称并且仍然使用linq to sql?我还没有找到在运行时修改数据上下文的方法。有没有人找到一种方法来拥有可变数据库服务器名称和 linq to sql?
我知道我可以切换到凝视 sql 命令并在那里处理它,但我想继续使用 linq。
有什么建议吗?
解决方法
伯尼
我不确定这是否是您要问的问题,但是您可以通过在新建 dbx 时添加连接字符串作为参数来动态设置 DataContext。例如:
var dbx = new DataClasses1DataContext(@"Data Source=YourServer;Initial Catalog=YourDb;Integrated Security=True");
当我的软件与各种后端集成并且需要在运行时确定哪个后端时,我会这样做。同样,我不确定这是否是您所追求的,但如果是,您可能会发现这很有帮助。