在模型中使用多对多时访问实体框架自动生成的第三个表

Posted

技术标签:

【中文标题】在模型中使用多对多时访问实体框架自动生成的第三个表【英文标题】:Accessing third table auto generated by entity framework when using many-to-many in models 【发布时间】:2022-01-06 07:58:33 【问题描述】:

当在模型中定义多对多关系时,实体框架会自动创建第三个表。我可以在数据库中看到这个表,但我不确定如何访问它的数据。第三个表是ApplicationUserProject,定义了ProjectsUsers

之间的关系

如何访问此表及其数据?提前致谢

第三个生成的表

【问题讨论】:

为什么需要访问此表?如果您真的需要,您必须定义将映射到此表的实体。文档中的所有内容Many-to-many UsingEntity 我希望使用 projectID 获取与特定项目相关联的所有用户。当我尝试使用 include()... 从 Project 表中检索所有用户作为列表时,该值只是返回为 null 所以我不确定如何执行这样的操作。认为访问第三张桌子最好@SvyatoslavDanyliv 【参考方案1】:

在您的特定情况下,您不需要访问中间表。

var query = context.Users
  .Where(u => u.Projects.Any(p => p.Id == projectId));

【讨论】:

非常感谢!你怎么知道这样查询表?希望了解更多

以上是关于在模型中使用多对多时访问实体框架自动生成的第三个表的主要内容,如果未能解决你的问题,请参考以下文章

如何从雄辩关系中的第三个表中获取数据雄辩的多对多关系

没有链接表/模型的多对多关系?

数据库设计心得

实体框架更改生成的多对多表的名称

多对多的 Symfony2 DQL 更新查询

实体框架:多对多插入重复