DAL中的app.config和WebApplication中的web.config是什么?

5
我正在使用Entity Framework和ASP.NET MVC编写应用程序,因此我决定将DAL与MVC Web应用程序分离。实际上一切都很好,除了下一个问题(如果这是个问题):我不得不从DAL项目的app.config复制Entity连接字符串到Web应用程序的Web.config中。实际上看起来没问题:DAL不应该知道关于数据连接字符串的信息,这是主应用程序的职责。
但我真的不喜欢在DAL的app.config中保留Entity连接字符串,因为需要更新我的EntityModel(*.edmx)。是否有最佳实践可以引用Web应用程序的连接字符串?或者我应该像现在这样保持不变?

如果使用 EF 等工具,那么 EF 不就是你的数据访问层(DAL)吗?你是将这个 DAL 封装在另一个 DAL 中呢,还是自己封装了一个 DAL? - Jamie Dixon
1
是的,没错,我正在将 EF 封装在我的 DAL 项目中。 - Danil Sabirov
1个回答

6
因此,这里简单解释一下正在发生的事情。当您开发应用程序时,DAL项目本质上是它自己的项目。编辑DAL项目时,Visual Studio将使用项目配置文件中的值。因此,连接字符串保留在该app.config文件中。
现在,当您将整个解决方案发布到Web服务器时,Web应用程序是实际运行的应用程序。这引用了在构建过程中编译的DAL dll。鉴于此,DAL dll将从web.config获取其所有配置值,因为这是主执行程序的配置文件。
回答您的问题,最好在app.config和web.config中都保留它们,原因不言自明,您不必每次更新模型时都“创建新连接”。据我所知,在Visual Studio中,DAL项目永远不会查找另一个项目的配置文件。但是,在app.config和web.conig中都有连接字符串不会影响您的部署。始终使用web.config设置。

1
Tommy,感谢你详细的回答。现在我明白了,这不是什么需要担心的事情。 - Danil Sabirov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接