问题
- 应用程序是否真的需要安装EF6来使用另一个使用EF6的类库,因为它的底层数据检索机制(或者我错了)?
- 我如何解决这个问题,仍然使用EF?我必须在所有项目中引用Entity Framework 6 dll吗? (不仅仅是我的DAL)
方案
我们正在与使用EF6得到它的数据的新版本重写旧DAL。消费者应用程序不会在EF上下文中调用。他们改为调用中间函数(在DAL项目的业务逻辑文件夹中),然后调用EF。
当我有一个消费应用程序中引用我的新DAL(连接字符串和供应商引用添加到它的.config),编译缺少提供商的抱怨:
没有实体框架提供发现的ADO。具有不变名称'System.Data.SqlClient'的.NET提供程序。
我可以通过在我的使用应用程序中安装EF6软件包来解决这个问题,但这是有问题的。我们有大量的消费应用程序,其中很多具有并行数据访问机制,通常包含旧版本的EF。我需要我的DAL独立于我的消费者。
可以这样做吗?
无17小时内回复让我感到紧张,我问了一个错误的问题。 我现在知道我可以将EF dll添加到我的使用应用程序中,并且它毫不费力地工作,但为什么应用程序不会使用类库(DAL)中提供的提供程序,而不是要求它们在每个应用程序中,每一个消费应用?特别是当消费应用程序没有提供时。 – maulkye
我退出到EF5并没有发生这个问题。尽管我的原始问题并不是真正的答案。 – maulkye