Dot-Net
.NET / LINQ-SQL / ASP.NET 中的連接字元串地獄
我有一個包含以下內容的 Web 應用程序:
- 一個 Web 項目(帶有一個包含連接字元串的 web.config 文件 - 但在 Web 項目中沒有數據訪問程式碼)
- 使用 LINQ-SQL 類向 Web 項目 UI 提供實體的數據訪問項目(該項目有一個設置文件和一個 app.config - 兩者都有連接字元串)
當我建構和部署時,Bin 目錄中沒有設置文件或 app.config 與數據訪問 .dll,但更改 web.config 文件中的連接字元串不會相應地更改數據庫 - 所以連接字元串必須被編譯成數據訪問dll。
我需要一個用於我的整個部署的配置文件——網站、數據訪問 dll、一切——它有一個可以使用的連接字元串。目前,似乎有多個連接字元串在各處被使用或硬編碼。
我如何最好地解決這個爛攤子?
謝謝你的幫助。
我從來沒有遇到過數據訪問層(DAL) 能夠使用我
web.config文件中的連接字元串的問題。通常我只是從 DAL 複製連接字元串部分並將其粘貼到web.config. 我正在使用 DBML 設計器來創建數據上下文。如果這對您不起作用,您可以在數據上下文建構子中指定連接字元串。在您的 Web 項目中有一個靜態類來載入您的設置,包括您的連接字元串,並且當您創建 DAL 對象(或數據上下文,如果直接創建它)時,只需將其傳遞給建構子。
public static class GlobalSettings { private static string dalConnectionString; public static string DALConnectionString { get { if (dalConnectionString == null) { dalConnectionString = WebConfigurationManager .ConnectionStrings["DALConnectionString"] .ConnectionString; } return dalConnectionString; } } } ... using (var context = new DALDataContext(GlobalSettings.DALConnectionString)) { ... }