这是我的具体例子。
我编写了一个dll,它使用EntityFramework与数据库通信并完成一些工作。最初,前端是一个控制台应用程序,但现在还需要一个Web前端。 从我所读到的,最顶层的'应用程序(Web应用程序或控制台应用程序)应存储所有配置,甚至是仅由dll本身所需的配置。
(从现在开始,我将使用网络应用程序作为我的示例,但它也适用于控制台应用程序)
为了使Web应用程序正常工作,我已将连接字符串和其他设置从dll库的app.config移动到我的web.config中。
当我运行我的网络应用时,我收到以下错误
The Entity Framework provider type 'System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer' registered in the application config file for the ADO.NET provider with invariant name 'System.Data.SqlClient' could not be loaded
这似乎是因为在我的web.config中,连接字符串引用了Entity Framework,并且其中还有其他EntityFramework引用 - 所有这些引用都是DLL库所必需的。
一种解决方法是使用NuGet将EntityFramework安装到我的Web应用程序中。这一切都有效,但似乎非常错误 - 创造了不必要的依赖。
还有其他办法吗?
我可以解开web.config并将EntityFramework内容放在dll的app.config中,同时在web.config中保留基本的sql server连接字符串信息吗?如果是这样,那它怎么样就像意大利面!
如果可以的话,那里有指南吗?