5

我正在使用 Entity Framework 和 ASP.NET MVC 编写应用程序,因此我决定将 DAL 与 MVC Web 应用程序分开。实际上一切都很好,除了下一个问题(如果有问题):我必须将实体连接字符串从 DAL 项目的 app.config 复制到 Web 应用程序的 Web.config。实际上它看起来是正确的:DAL 不应该知道与数据的连接字符串,这是主应用程序的职责。

但我真的不喜欢,我必须在 DAL 的 app.config 中保留实体连接字符串,因为它需要更新我的 EntityModel (*.edmx)。是否有一些最佳实践可以参考 Web 应用程序的连接字符串?还是我应该像现在一样离开它?

4

1 回答 1

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 设置。

于 2012-11-12T17:01:02.830 回答