对于问题的缘故,我有一个项目结构如下,其中每个层映射到一个项目在我的视觉工作室溶液:跨项目的程序集引用 - 需要多个实体框架引用?
- 表示层
- 业务逻辑层
- 数据层(使用实体框架)
我在我的数据层中定义了存储库类。在BL层中实例化它们时,我得到一个错误,指出对实体框架程序集的引用缺失。我添加了一个对我在DL中使用的同一个实体框架dll的引用,它可以工作。
我的问题是:为什么BL没有引用DL,为什么还需要在BL中添加一个“额外的”EF引用?我显然不想在我的解决方案中控制多个EF版本。
我会认为我的DL是一个“原子”单位,它的所有对象都是自包含的,并且不需要别的东西来正常工作。为什么在实例化DL中定义的类时,我仍然需要添加一个EF引用,DL具有哪个EF引用?
嗯...解决方案级nuget包...似乎我要学习一些有趣的感谢你;) – Veverke
虽然带领我的解决方案,我会建议阅读下面的文章更详细的解释:http ://blog.spinthemoose.com/2013/04/21/nuget-tip-3-manage-packages-at-the-solution-level/ – Veverke
不错的发现,我把它添加到其他人的答案。 –