更改连接字符串而不重新编译

时间:2012-02-21 08:53:09

标签: c# .net linq-to-sql database-connection

我正在开发一个WinForm应用程序。我已经将数据访问逻辑实现到“库项目”中,我在WinForm项目中将其设置为引用。我正在使用LINQ to SQL连接到我的项目数据库,将我使用的表映射到dbml文件。现在我必须发布我的项目并更改连接字符串以指向生产数据库。

是否可以在不重新编译项目的情况下更改连接字符串? 它在调试时和维护时非常有用......

我试图在app.configSettings文件中更改它,但它似乎仍然指向开发数据库。

我在哪里做错了?

1 个答案:

答案 0 :(得分:3)

本文中建议的解决方案非常好:http://goneale.com/2009/03/26/untie-linq-to-sql-connection-string-from-application-settings/

但我决定以不同的方式解决我的问题。

在我的DAO类中添加的dbml文件中没有修改任何带参数的构造函数:

public MyDataAccessClass(string connectionString)
{
     _connString = connectionString;
}

然后我没有使用DataClasses()构造函数来实例化LINQ-TO-SQL类,而是将其替换为DataClasses(_connString)

现在我可以在需要的地方使用数据访问库。连接字符串将在referencig应用程序的app.config中(或其他任何位置)设置。