entity-framework - 跨项目的程序集引用 - 需要多个 Entity Framework 引用?

标签 entity-framework assembly-references

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

  • 表示层
  • 业务逻辑层
  • 数据层(使用 Entity Framework )

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

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

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

最佳答案

这确实是构建引擎 MSBuild 的工作原理。 Visual Studio 过去不会提示间接引用,只是在 TFS 构建服务器上发现它损坏了。至于他们为什么要这样做,我没有答案。

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

详细解释可以read this article .

关于entity-framework - 跨项目的程序集引用 - 需要多个 Entity Framework 引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31023889/

相关文章:

c# - 如何使用 Entity Framework 删除相关字段

c# - 2 级联接 LINQ

c# - 无法加载文件或程序集或其依赖项之一。该系统找不到指定的文件。 (不允许 GAC)

c# - ASP.Net/C# - 缺少程序集引用

entity-framework - ObjectStateManager 中已存在具有相同键的对象。 ObjectStateManager 无法跟踪具有相同键的多个对象

c# - Entity Framework 从存储过程获取非实体对象

.net - 是否有与ilmerge相反的实用程序?

.net - 为什么“添加引用”中未列出 System.Web.Mvc?

c# - 通过使用 "object"文件并稍后合并来加快 C# 编译速度?

entity-framework - 如何更改表的 Identity Server 4 架构?