Skip to main content
 首页 » 编程设计

c#之Entity Framework 6 两个不同的集合引用同一个实体

2024年02月06日29hnrainll

我得到了以下场景:

可以是社区主席或管理员的用户。当指定一个导航属性将社区连接到它的总裁和管理时,我得到了这个:

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

而且我找不到任何文档来说明如何将第一个点仅指向用户管理的那些,而第二个点指向他正在预测的那些。 提前致谢。

请您参考如下方法:

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

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