2014-02-12 13 views
0

我有3個項目的解決方案。 控制檯項目和兩個類庫項目。用單獨的連接字符串設置創建多個實體數據模型

每個課程項目都有一個EDM項目添加了一個實體。

所以我使用模型優先的方法。

每類項目都有自己的app.config有:

<connectionStrings> 
<add name="FilingDBContainer" connectionString="Data Source=TESTPC\SQLEXPRESS;Initial Catalog=Test;Integrated Security=True;Pooling=False" /> 
</connectionStrings> 

<connectionStrings> 
<add name="ResponderDBContainer" connectionString="Data Source=TESTPC\SQLEXPRESS;Initial Catalog=Test;Integrated Security=True;Pooling=False" /> 
</connectionStrings> 

。我在運行控制檯的項目,我有這樣的代碼:

var fileContext = new FilingDBContainer(); 
var files = fileContext.FileSet; 
for (int i = 0; i < 10; i++) 
{ 
    files.Add(new File { Id = i + 1, Filename = "Test" + i }); 
} 

var responderContext = new ResponderDBContainer(); 
var responders = responderContext.ResponderSet; 
for (int i = 0; i < 10; i++) 
{ 
    responders.Add(new Responder { Id = i + 1, Respondername = "Test" + i }); 
} 

當第一個文件被添加我得到一個例外:

No connection string named 'FilingDBContainer' could be found in the application config file. 

對我來說,似乎connectionString應該放在控制檯proj等,但我不想在那裏放置連接字符串。每個類項目都應該有自己的連接字符串!

我怎麼能這樣做?

+0

歡迎來到1,500代表!請注意,您現在可以創建標籤。這意味着您在輸入時需要格外小心,因爲您現在可以*在打字時意外*創建標籤。 *始終*使用自動完成列表! – Charles

回答

0

你的控制檯應用程序應該有一個配置文件與此項:

<connectionStrings> 
<add name="FilingDBContainer" connectionString="Data Source=TESTPC\SQLEXPRESS;Initial Catalog=Test;Integrated Security=True;Pooling=False" /> 
<add name="ResponderDBContainer" connectionString="Data Source=TESTPC\SQLEXPRESS;Initial Catalog=Test;Integrated Security=True;Pooling=False" /> 
</connectionStrings> 

連接字符串從加載應用程序的配置加載。如果你想自動加載程序集的配置文件,你必須編寫代碼來手動查詢它。

0

最終可執行文件將擁有自己的配置文件。沒有使用類庫配置。爲您的控制檯應用程序添加一個.config,以控制它所使用的庫的環境。

相關問題