如何在项目中“携带”引用

时间:2013-12-30 13:49:00

标签: c# visual-studio dll dll-reference

我有两个项目:X和Y.Project X是一个类lib,它引用,例如,EF 6.项目Y作为引用X的控制台应用程序。为什么我得到一个无法加载依赖项异常,如果我不添加,比方说,EF 6投影Y?有没有办法将这些参考“带”到项目Y?

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

1 个答案:

答案 0 :(得分:2)

您很可能会将类暴露给Y,这些类继承自Entity Framework,很可能是您的实体,如果项目Y使用了您的Context,等等。

因此,项目Y需要引用实体框架,因为它不能解析类继承的类(基本属性,逻辑)。

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

另一种方法是将项目X隐藏在Web服务(WCF)之后。然后项目Y调用webservice,它调用项目X中的逻辑.WCF Web服务从Entity Framework中不公开任何内容,因此您的项目Y不需要任何对它的引用。

相关问题