从数据层配置文件中正确访问连接字符串

时间:2015-09-29 13:58:28

标签: c# connection-string app-config

我在数据访问层中使用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中。这应该是怎么回事。

我的问题是我应该如何正确访问连接字符串,因为有几个选项打开。

  1. 将连接字符串部分从data.config复制到presentation.config。但是如果连接改变怎么办?我必须在presentation.config文件中不断更改它们。

  2. 我应该从presentation.config文件中指向data.config文件的链接。

  3. <configuration>

    `<connectionStrings configSource="connections.config"/>`
    

    </configuration>

    1. 或者我应该使用ConfigurationManager.OpenExeConfiguration()来访问data.config。
    2. 目前,我发现选项2是最佳选择,因为它稍后需要更少的重构和维护。但我很高兴知道适当的方法。

      修改:

      有没有办法让EF直接指向我的presentation.config文件来访问连接字符串?

1 个答案:

答案 0 :(得分:1)

实际上,最合适的方法是避免访问DAL中的任何配置数据,并在实例化时简单地传递它。这样,您可以将配置存储在应用程序所需的任何位置,并且您的DAL可以重复使用。