首页 > 解决方案 > 为什么在 EF Core 中没有一种简单的方法来定义多对多关系?

问题描述

我试图在使用 EF Core 2.0 的两个类之间建立多对多关系,只需在每个类中使用另一个类的 ICollection。

这似乎在 EF 6 中工作得很好(请参阅本教程)。为什么这在 EF Core 中不起作用?

public class ClassA {

   [...]

   public ICollection<ClassB> Bs { get; set; }
}

public class ClassB {

   [...]

   public ICollection<ClassA> As { get; set; }
}

我找到了一种在 EF 核心中执行此操作的方法(请参阅本教程),但这看起来比需要的手动工作更多。

有谁知道他们是否打算很快支持这个?

标签: c#.net-coreef-core-2.0

解决方案


从3.0版本开始,实体核心应该提供多对多关系而无需映射表。您可以在此处关注 github 票。

等待此功能,解决方法是使用连接表作为实体。请参阅此处github 讨论中解释的解决方法。

编辑
正如 Ivan 指出的那样,此功能状态仍处于积压状态,可能或不可能是 3.0 或更高版本的一部分(至于 05/2019)。


推荐阅读