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

时间:2014-10-07 13:44:45

标签: c# entity-framework

我有以下情况:

可以担任社区总裁或经理的用户。指定导航属性以将社区连接到其总裁并进行管理时,我得到了:

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; }
}

我找不到任何关于如何将第一个点仅指向用户管理的文档,以及第二个指向他预先创建的文档的文档。 提前谢谢。

1 个答案:

答案 0 :(得分:4)

Code First Data Annotations (MSDN)中所述,您可以使用InverseProperty属性。

[InverseProperty("Manager")] 
public virtual ICollection<Community> ManagedCommunities { get; set; }

[InverseProperty("President")] 
public virtual ICollection<Community> PresidedCommunities { get; set; }