使用单独的连接字符串设置创建多个实体数据模型



我有一个包含 3 个项目的解决方案。一个控制台项目和两个类库项目。

每个类项目都有一个添加了一个实体的 EDM 项。

所以我使用模型优先方法。

每个类项目都有自己的 app.config,其中包含:

<connectionStrings>
<add name="FilingDBContainer" connectionString="Data Source=TESTPCSQLEXPRESS;Initial Catalog=Test;Integrated Security=True;Pooling=False" />
</connectionStrings>
<connectionStrings>
<add name="ResponderDBContainer" connectionString="Data Source=TESTPCSQLEXPRESS;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 字符串!

我该怎么做?

控制台应用应有一个包含以下条目的配置文件:

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

连接字符串从加载应用程序的配置加载。如果要自动加载程序集的配置文件,则必须编写代码来手动查询它。

最终可执行文件将有自己的配置文件。不使用类库配置。为控制台应用程序添加一个 .config,用于控制它使用的库的环境。

最新更新