强制实体框架和ASP.MVC使用另一个程序集的app.config中的连接字符串



设置&设置:

我使用实体框架5,有一个带有edmx文件的dll项目。在这个项目中,我有一个带有EF模型连接字符串的App.config。我还有第二个项目,ASP.MVC 4网络应用程序,这是一个启动项目。它引用了数据库项目。重要的是,db是Oracle,EF使用Oracle自定义提供程序。

问题:

如果我把我的连接字符串放在ASP.MVC启动项目是工作正常的。这样做是常见的建议。但我不想。我不明白为什么我应该这样做。如何强制MVC/EF在外部库(实际上是数据访问层)的App.config中查找连接字符串?

App.Config由WinForms、WPF和可执行应用程序使用。

Web.Config用于IIS(并且能够设置IIS环境特定的配置)

似乎没有一个App.Config会被合并到Web.Config(来源):

在使用App.config文件时,配置系统会合并当应用程序启动并应用配置。这种机制允许在machine.config文件中定义计算机范围的设置。App.config文件可用于覆盖Machine.config文件;也可以锁定中的设置Machine.config文件,以便使用它们在Web.config的情况下配置系统合并所有目录中的Web.config文件引导到应用程序目录的配置得到应用。有关配置和设置的详细信息优先级,请参阅System.Configuration命名空间中的主题。

也许您可以通过使用应用程序配置文件找到更适合您需求的解决方案。

最后,在遇到多个问题后,我决定将DAL的连接字符串移动到Web应用程序的Web.config中。我被一些论点说服了,你可以在这里读到克里斯·阿曼的帖子。

最新更新