我有一个包含3个项目的解决方案。 一个控制台项目和两个类库项目。
每个班级项目都有一个EDM项目,其中添加了一个实体。
所以我使用Model First方法。
每个类项目都有自己的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放在控制台项目中,但我不想在那里放置con字符串。每个类项目都应该有自己的con字符串!
我该怎么做?
答案 0 :(得分: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>
从加载应用程序的配置加载连接字符串。如果要自动加载程序集的配置文件,则必须编写代码以手动查询它。
答案 1 :(得分:0)
最终可执行文件将拥有自己的配置文件。未使用类库配置。为控制台应用程序添加一个.config,以控制它所使用的库的环境。