0

我有 2 个项目:X 和 Y。项目 X 是一个类库,可以说是 EF 6。项目 Y 作为引用 X 的控制台应用程序。如果我不添加,为什么会出现无法加载依赖项异常,让比如说,EF 6 到项目 Y?有没有办法“携带”这些对项目 Y 的引用?

这里的想法是 Y 不应该知道 EF-6,更不用说它的依赖了!

4

1 回答 1

2

您很可能将类暴露给从实体框架继承的 Y,很可能是您的实体,如果项目 Y 使用它,您的上下文等。

因此,项目 Y 需要引用实体框架,因为它无法以其他方式解析您的类继承自的类(基础属性、逻辑)。

对 Y 隐藏实体框架的唯一方法是使其完全独立于它。因此,例如,您可以在项目 Y 调用的项目 X 中创建一个服务类,并且此类的方法不公开任何来自 Entity Framework 的类,也不公开任何从 Entity Framework 中的类继承的类。您可以通过创建自己的实体来做到这一点,然后从 Entity Framework 等中的查询映射到这些实体。

另一种方法是将项目 X 隐藏在 Web 服务 (WCF) 后面。然后项目 Y 调用 web 服务,该服务调用项目 X 中的逻辑。WCF web 服务不从实体框架公开任何内容,因此您的项目 Y 不需要对它的任何引用。

于 2013-12-30T14:00:29.767 回答