【发布时间】:2013-12-06 14:10:51
【问题描述】:
问题
- 应用程序是否真的必须安装 EF6 才能使用另一个使用 EF6 作为其底层数据检索机制的类库(或者我弄错了)?
- 我怎样才能解决这个问题并仍然使用 EF?
场景
我们正在用使用 EF6 获取数据的新版本重写旧 DAL。消费者应用程序不调用 EF 上下文。它们改为调用中间函数(在 DAL 项目的业务逻辑文件夹中),然后调用 EF。
当我有一个正在使用的应用程序引用我的新 DAL(连接字符串和提供程序引用添加到它的 .config)时,编译器会抱怨缺少提供程序:
找不到具有不变名称“System.Data.SqlClient”的 ADO.NET 提供程序的实体框架提供程序。
我可以通过将 EF6 包安装到我的消费应用程序中来解决这个问题,但这是有问题的。我们有大量使用应用程序,其中许多具有并行数据访问机制,通常包括旧版本的 EF。我需要我的 DAL 独立于我的消费者。
这个可以吗?
【问题讨论】:
-
17 小时内没有回复让我很紧张,因为我问错了问题。我现在知道我可以将 EF dll 添加到我的消费应用程序中并且它可以毫不费力地工作,但是为什么应用程序不利用类库 (DAL) 中提供的提供程序,而不是要求它们在每个消费程序中应用?尤其是当消费应用不提供任何服务时。
-
我退出到 EF5 并没有出现这个问题。不过,这并不是我原来问题的真正答案。
-
我有完全相同的问题。差别不大的是它编译成功。但是在运行时,只要调用 BIZ 层中的方法,它就会抛出 IO.FileLoadException。 OCuldn´t 加载文件或程序集 EntityFramework v 6.0.0.0。我小心翼翼地不使用客户端中的域上下文对象,只使用本机类型,但它仍然以某种方式要求 EF dll。到目前为止的任何提示。您是否尝试过以下回复?
标签: c# entity-framework entity-framework-6