设置&设置:
我使用Entity Framework 5并使用edmx文件创建一个dll项目。在这个项目中,我有一个带有EF模型连接字符串的App.config。我还有第二个项目,ASP.MVC 4 Web应用程序,这是一个启动项目。它引用了数据库项目。重要的是 - db是Oracle,EF使用Oracle自定义提供程序。
问题:
如果我将连接字符串放在ASP.MVC启动项目中工作正常。这样做是很常见的建议。但我不想。我不明白为什么我应该这样做。如何强制MVC / EF在外部库的App.config中找到连接字符串(事实上它是一个数据访问层)?
答案 0 :(得分:1)
App.Config 由WinForms,WPF和可执行应用程序使用。
在IIS中使用Web.Config (并且能够设置IIS环境特定的配置)
似乎没有App.Config会被合并到Web.Config(source):
在使用App.config文件时,配置系统会合并 当具有Machine.config文件内容的App.config文件时 应用程序启动并应用配置。这个机制 允许在Machine.config文件中定义机器范围的设置。 App.config文件可用于覆盖的设置 Machine.config文件;你也可以锁定设置 Machine.config文件以便它们被使用。 在Web.config案例中, 配置系统合并所有目录中的Web.config文件 将应用程序目录导入到配置中 得到应用。有关配置和设置的详细信息 优先级,请参阅System.Configuration命名空间中的主题。
也许您可以使用Application Configuration Files找到更符合您需求的解决方案。
答案 1 :(得分:0)
最后,在遇到多个问题之后,我决定将DAL的连接字符串移动到Web应用程序的Web.config中。我对一些论点深信不疑,你可以在Chris Ammerman的帖子中读到here。