【问题标题】:Assembly references across projects - need for more than one Entity Framework reference?跨项目的程序集引用 - 需要多个实体框架引用?
【发布时间】:2015-06-24 10:15:30
【问题描述】:

为了这个问题,我有一个结构如下的项目,其中每一层都映射到我的 Visual Studio 解决方案中的一个项目:

  • 表示层
  • 业务逻辑层
  • 数据层(使用实体框架)

我在数据层中定义了存储库类。在 BL 层中实例化它们时,我收到一条错误消息,指出缺少对实体框架程序集的引用。我添加了对在我的 DL 中使用的同一实体框架 dll 的引用,它可以工作。

我的问题是:为什么让 BL 引用 DL 还不够,为什么我还需要在 BL 中添加对 EF 的“附加”引用?我显然不想在我的解决方案中控制多个 EF 版本。

我认为我的 DL 是一个“原子”单元,它的所有对象都是自包含的,不需要其他任何东西来正常运行。那么为什么在 DL 中定义的实例化类时我仍然需要添加 EF 引用,DL 自己的 EF 引用呢?

【问题讨论】:

    标签: entity-framework assembly-references


    【解决方案1】:

    这确实是构建引擎 MSBuild 的工作方式。 Visual Studio 过去不抱怨间接引用,只是在 TFS 构建服务器上发现它损坏了。至于他们为什么以他们的方式建造这个,我没有答案。

    我确实有一个简单的解决方法: 使用solution-level NuGet packages。您将实体框架包作为 NuGet 包添加到解决方案,并检查所有应具有此引用的项目。这种方式还可以防止多个不同的版本。

    详细解释可以read this article

    【讨论】:

    • 嗯...解决方案级别的 nuget 包...看来我要学习一些有趣的东西了 ;)
    • 虽然引导我找到解决方案,但我建议阅读以下文章以获得更详细的解释:blog.spinthemoose.com/2013/04/21/…
    • 很好的发现,我将它添加到其他人的答案中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-22
    • 1970-01-01
    • 2011-01-12
    相关资源
    最近更新 更多