实体框架6引用同一实体的两个不同集合

本文关键字:实体 两个 集合 框架 引用 | 更新日期: 2023-09-27 18:25:58

我得到了以下场景:

可以是社区主席或管理者的用户。当指定一个导航属性来将社区连接到其总裁并进行管理时,我得到了以下信息:

public class Community
{
    ...
    [ForeignKey("President")]
    public int? PresidentId { get; set; }
    public virtual User President { get; set; }
    [ForeignKey("Manager")]
    public int? ManagerId { get; set; }
    public virtual User Manager { get; set; }
}

但我找不到解决方案的部分来了。我想有两个关于用户的集合,每个集合都重新提交给他们管理的社区,以及他们主持的社区:

public class User
{
    ...
    public virtual ICollection<Community> ManagedCommunities { get; set; }
    public virtual ICollection<Community> PresidedCommunities { get; set; }
}

我找不到任何关于如何让第一个点只指向用户管理的点,第二个点指向他正在准备的点的文档。提前谢谢。

实体框架6引用同一实体的两个不同集合

如代码优先数据注释(MSDN)中所述,您可以使用InverseProperty属性。

[InverseProperty("Manager")] 
public virtual ICollection<Community> ManagedCommunities { get; set; }
[InverseProperty("President")] 
public virtual ICollection<Community> PresidedCommunities { get; set; }
相关文章: