2012-12-29 243 views
1

我有一個使用相同域模型的多個項目的解決方案。因此我創建了一個擁有我的域模型的類庫。這個類庫還包含在我的項目中使用的其他參數。然後,我在每個項目中添加對類庫的引用。 我的類庫也有一些從this example派生的存儲庫類。類庫數據庫連接字符串

但是,我有一個連接到數據庫的問題。我希望我的類庫能夠連接到數據庫,因爲我在那裏定義了我的數據庫上下文類,在那裏設置了我的數據庫集。對於單個項目,我通常在我的web.config文件中定義我的連接字符串。但類庫沒有web.config文件。我如何設置連接字符串?

編輯

說,我有我的數據庫上下文,mydbcontext,在類庫中定義的構造函數

public mydbcontext() : base(ConfigurationManager.ConnectionStrings["DatabaseCon"].ConnectionString) 
    { 

    } 

如果我理解這一點吧,不會是確定剛纔設置的名稱每個項目的連接字符串爲「DatabaseCon」?

+0

程序集可以從其上下文中找到配置文件,例如,從Web應用程序調用的程序集將有權訪問web.config。 –

+0

非常感謝。請參閱編輯(如果我理解正確) – jpo

+0

@jpo - 這是一種方法,但現在您的數據訪問庫不能單獨進行測試。 – Oded

回答

0

您應該在使用類庫的應用程序的web.config文件中定義連接字符串。作爲替代方案,您可以將連接字符串硬編碼到類庫內的構造函數中 - 非常糟糕的方法,因爲您無法從外部修改它 - 例如,您將難以管理不同的連接字符串不同的環境 - 舞臺,製作,...

+0

請參閱編輯 – jpo

+0

我已經告訴過你:將連接字符串放入使用此庫的Web應用程序的'web.config'中。這是正確的方法。 –

1

你不知道。

將連接字符串作爲依賴項傳遞給需要它的任何類。

你可以封裝對它的訪問 - 但是你應該在使用這個庫的任何程序中實例化它。該程序將在其配置中保存連接字符串。

+0

這是我沒有考慮的方法。你有一個例子嗎? – jpo

+0

@jpo - 一個例子?你只需傳入一個字符串參數即可。 – Oded

+0

明白了,謝謝!很有意義。 – jpo