定义引用同一个表的多对多关系(EF7/core)

Posted

技术标签:

【中文标题】定义引用同一个表的多对多关系(EF7/core)【英文标题】:Defining a many-to-many relationship referencing the same table (EF7/core) 【发布时间】:2016-03-24 10:12:56 【问题描述】:

模型具有 item 实体。 并且会有一些项目依赖于(使用)其他项目。多对多的关系。示例:

Item A is used by Item B, C, and F.
Item B is used by Item C, F and H.

如何正确定义不同项目之间的方向关系?

物品:

public class Item
    
    public int Id
         get; set;
    public string Name
        get; set;
    

我定义依赖项的第一种方法是:

public class ItemDependency

    [Key]
    public int Id
     get; set; 

    [ForeignKey("ItemParentId")]
    public Item ItemParent  get; set; 

    public int ItemParentId get; set; 

    [ForeignKey("ItemDependentId")]
    public Item ItemDependentId  get; set; 

    public int ItemDependentId  get; set; 


【问题讨论】:

【参考方案1】:

根据文档EF7 Many-to-many relationship:

尚不支持没有实体类来表示连接表的多对多关系。但是,您可以通过包含连接表的实体类并映射两个单独的一对多关系来表示多对多关系。

【讨论】:

以上是关于定义引用同一个表的多对多关系(EF7/core)的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 定义同一张表的多对多关系

如何处理mongodb中的多对多关系

Hibernate的多对多关联关系

推进:没有交叉表的多对多关系

Hibernate学习笔记 --- 创建基于中间关联表的多对多映射关系

Laravel Datatable 与多个表的多对多关系