我正在使用Entity Framework和ASP.NET MVC编写应用程序,因此我决定将DAL与MVC Web应用程序分开。实际上一切都很好,除了下一个问题(如果它的问题):我不得不将实体连接字符串从DAL项目的app.config复制到Web应用程序的Web.config。实际上它看起来是正确的:DAL不应该知道连接字符串到Data,它是Main Application的职责。
但我真的不喜欢,我必须在DAL的app.config中保留Entity连接字符串,因为它需要更新我的EntityModel(* .edmx)。是否有一些最佳实践来引用Web应用程序的连接字符串?或者我现在就像现在这样离开它?
答案 0 :(得分:6)
所以,只是解释这里发生的事情。在开发应用程序时,DAL项目本质上就是它自己的项目。编辑DAL项目时,Visual Studio将使用项目配置文件中的值。因此,为什么连接字符串保留在该app.config文件中。
现在,当您将整个解决方案发布到Web服务器时,Web应用程序就是正在运行的实际应用程序。这引用了在构建过程中编译的DAL dll。鉴于此,DAL dll将从web.config获取其所有配置值,因为这是主执行程序集的配置文件。
要回答您的问题,最好将它们保存在app.config和web.config中,除非您每次需要更新模型时都不必“创建新连接”。据我所知,DAL项目在Visual Studio中不会查看其他项目配置文件。但是,在app.config和web.conig中都有连接字符串不会影响您的部署。将始终使用web.config设置。