C# 为什么在EF Core中没有定义多对多关系的简单方法?

C# 为什么在EF Core中没有定义多对多关系的简单方法?,c#,.net-core,ef-core-2.0,C#,.net Core,Ef Core 2.0,我试图使用EF Core 2.0在两个类之间建立多对多关系,只需在每个类中创建另一个类的ICollection即可 这在EF 6()中似乎工作得很好。为什么这在EF Core中不起作用 公共类ClassA{ [...] 公共ICollection Bs{get;set;} } 公共B类{ [...] 公共ICollection为{get;set;} } 我在EF-core()中找到了一种方法来实现这一点,但这看起来比需要更多的手工工作 有人知道他们是否打算在近期内支持此功能吗?从3.0版本开始

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

这在EF 6()中似乎工作得很好。为什么这在EF Core中不起作用

公共类ClassA{
[...]
公共ICollection Bs{get;set;}
}
公共B类{
[...]
公共ICollection为{get;set;}
}
我在EF-core()中找到了一种方法来实现这一点,但这看起来比需要更多的手工工作


有人知道他们是否打算在近期内支持此功能吗?

3.0版本开始,Entity core就应该提供多对多关系,而无需映射表。 您可以按照github票证进行操作

在等待此功能时,解决方法是将联接表用作实体。请参阅github讨论中解释的解决方法

编辑

正如Ivan指出的,此功能状态仍处于待办事项中,可能是也不可能是3.0版或更高版本(截至2019年5月)的一部分。

使用这样的列表->公共列表作为{get;set;}我无法想象如果没有中间表,多对多关系会如何工作,至少如果您不想在一列中存储逗号分隔的ID。也许新的EF版本会试图使这一步不透明?我已经做到了。尝试执行迁移时,出现以下错误:
无法确定“List”类型的导航属性“ClassA.ClassB”表示的关系。手动配置关系,或使用“[NotMapped]”属性或使用“OnModelCreating”中的“EntityTypeBuilder.ignore”忽略此属性。
@RaphaelMayer否,EF6只需在内部为您完成所有操作。@RaphaelMayer查看我在问题中喜欢的第一个教程。他们会自动创建一个连接表。据我所知,这个功能对EF Core 3很有希望,但不能保证。@DavidG这也是我所理解的。它应该从3.0开始提供。但是,现有的3.0预览版目前不允许这样做。据我所知,目前的状态是
backlog
,这意味着它没有任何发布计划。也不能保证它会得到解决。它所能保证的是,有一天它可能会得到解决。