我正在使用WinForm應用程序。我已將數據訪問邏輯實現爲「庫項目」,我在WinForm項目中將其設置爲參考。我正在使用LINQ to SQL連接到我的項目數據庫,將我使用的表映射到dbml
文件中。現在,我必須發佈我的項目並將連接字符串更改爲指向生產數據庫。更改連接字符串而不重新編譯
是否可以在不重新編譯項目的情況下更改連接字符串? 這將是在調試時間和維護非常有用......
我試圖改變它在app.config
並在Settings
文件,但它似乎仍然指向發展DB。
我在哪裏做錯了?
我正在使用WinForm應用程序。我已將數據訪問邏輯實現爲「庫項目」,我在WinForm項目中將其設置爲參考。我正在使用LINQ to SQL連接到我的項目數據庫,將我使用的表映射到dbml
文件中。現在,我必須發佈我的項目並將連接字符串更改爲指向生產數據庫。更改連接字符串而不重新編譯
是否可以在不重新編譯項目的情況下更改連接字符串? 這將是在調試時間和維護非常有用......
我試圖改變它在app.config
並在Settings
文件,但它似乎仍然指向發展DB。
我在哪裏做錯了?
在這篇文章中提出的解決方案是非常好的:http://goneale.com/2009/03/26/untie-linq-to-sql-connection-string-from-application-settings/
但我還是決定來解決我的問題以不同的方式。
沒有在dbml
文件我在DAO類添加一個構造函數的參數修改點兒:
public MyDataAccessClass(string connectionString)
{
_connString = connectionString;
}
然後而是採用DataClasses()
構造函數來實例化LINQ到SQL類的,我取代了它與DataClasses(_connString)
。
現在我可以在需要的地方使用數據訪問庫。連接字符串將在引用應用程序(或其他任何地方)的app.config
中設置。
你可以創建一個最小的測試用例嗎?儘可能小的應用程序仍然存在問題? – 2012-02-21 09:02:45
你的連接字符串是在哪裏定義的? – 2012-02-21 09:02:59
@KirillPolishchuk我創建了一個用於訪問數據的dll項目。當我創建我的dbml文件並把它放在裏面時,連接字符串被保存在'settings'文件中,並且也保存在我的「data-access-project」的'app.config'文件中。我想在項目中指定連接字符串作爲參考此dll ...是否有可能? – davioooh 2012-02-21 09:09:03