我读过几篇类似这样的文章,其中暗示 A 和 B 之间需要一个显式实体 AB。
当我用谷歌搜索时,我找不到任何官方信息证实或反驳该声明。另一方面,预览版的文档可能没有完全覆盖。
在 .NET Core 3 中是否有可能,还是我们仍然被迫手动创建 N 对 N 实体?
我读过几篇类似这样的文章,其中暗示 A 和 B 之间需要一个显式实体 AB。
当我用谷歌搜索时,我找不到任何官方信息证实或反驳该声明。另一方面,预览版的文档可能没有完全覆盖。
在 .NET Core 3 中是否有可能,还是我们仍然被迫手动创建 N 对 N 实体?
您(并且不仅)要求的功能由#10508 跟踪:在不映射连接表的情况下实现多对多关系。
如您所见,状态为Backlog
,表示已考虑,但没有具体时间表。EF Core 团队(经理)的最后评论是
3.0 的当前计划是实现跳跃级导航属性作为延伸目标。如果属性包 ( #9914 ) 也进入 3.0,那么实现多对多的无缝体验可能会变得更容易。
它也没有列在New features中。并且只是在属性包实体中引用
此功能是在没有连接实体的情况下支持多对多关系的垫脚石(问题#1368),这是 EF Core 最需要的改进之一。
其中#1368 指的是关于多对多关系的讨论(没有用于连接表的 CLR 类)。
所有这一切仅意味着您的问题的答案是 - 不,此功能不会出现在 3.0 中,因此您应该继续使用显式连接实体。
是的,你需要实现中间实体!您可以使用以下命令进行检查:
dotnet ef dbcontext 脚手架“数据源=DATABASE_IP;初始目录=NAMEDATABASE;集成安全性=True”Microsoft.EntityFrameworkCore.SqlServer -o Models -f -c DemoDbContext