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

时间:2015-02-05 09:46:01

标签: c# asp.net-mvc entity-framework asp.net-mvc-4 entity-framework-5

设置&设置:

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

问题:

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

2 个答案:

答案 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