我在数据访问层中使用EF有一个n层的wpf应用程序。简化的结构看起来像这样
- DataProject.csproj
* data.config
* Repository.cs
- Presentation.csproj
* presentation.config
* PresentationCode.cs
可以看出,Presentation.csproj引用了DataProject.dll
我在我的Repository.cs中使用ConfigurationManager
来获取ConnectionStringSettingsCollection
,但默认情况下ConfigurationManager
会默认访问presentation.config,即使代码是从Repository.cs调用的在DataProject中。这应该是怎么回事。
我的问题是我应该如何正确访问连接字符串,因为有几个选项打开。
将连接字符串部分从data.config复制到presentation.config。但是如果连接改变怎么办?我必须在presentation.config文件中不断更改它们。
我应该从presentation.config文件中指向data.config文件的链接。
<configuration>
`<connectionStrings configSource="connections.config"/>`
</configuration>
ConfigurationManager.OpenExeConfiguration()
来访问data.config。 目前,我发现选项2是最佳选择,因为它稍后需要更少的重构和维护。但我很高兴知道适当的方法。
修改:
有没有办法让EF直接指向我的presentation.config文件来访问连接字符串?
答案 0 :(得分:1)
实际上,最合适的方法是避免访问DAL中的任何配置数据,并在实例化时简单地传递它。这样,您可以将配置存储在应用程序所需的任何位置,并且您的DAL可以重复使用。