7

我读过几篇类似这样的文章,其中暗示 A 和 B 之间需要一个显式实体 AB。

当我用谷歌搜索时,我找不到任何官方信息证实或反驳该声明。另一方面,预览版的文档可能没有完全覆盖。

在 .NET Core 3 中是否有可能,还是我们仍然被迫手动创建 N 对 N 实体?

4

2 回答 2

11

您(并且不仅)要求的功能由#10508 跟踪:在不映射连接表的情况下实现多对多关系

如您所见,状态为Backlog,表示已考虑,但没有具体时间表。EF Core 团队(经理)的最后评论

3.0 的当前计划是实现跳跃级导航属性作为延伸目标。如果属性包 ( #9914 ) 也进入 3.0,那么实现多对多的无缝体验可能会变得更容易。

它也没有列在New features中。并且只是在属性包实体中引用

此功能是在没有连接实体的情况下支持多对多关系的垫脚石(问题#1368),这是 EF Core 最需要的改进之一。

其中#1368 指的是关于多对多关系的讨论(没有用于连接表的 CLR 类)


所有这一切仅意味着您的问题的答案是 - 不,此功能不会出现在 3.0 中,因此您应该继续使用显式连接实体。

于 2019-07-19T19:37:18.670 回答
0

是的,你需要实现中间实体!您可以使用以下命令进行检查:

dotnet ef dbcontext 脚手架“数据源=DATABASE_IP;初始目录=NAMEDATABASE;集成安全性=True”Microsoft.EntityFrameworkCore.SqlServer -o Models -f -c DemoDbContext

于 2019-07-19T19:14:33.453 回答