实体框架自引用1到1的可选关系
本文关键字:关系 框架 自引用 实体 | 更新日期: 2023-09-27 17:59:38
所以我有一个名为Contact的表,它可以是不同的类型。我希望表格能够与自己有一个一、一个多或一个零/一的关系。这可能吗?如果是,怎么做?
例如,一个联系人可以有一个配偶,这只是数据库中的另一个联系人。联系人也可以是组织类型,在这种情况下,联系人可以与其他联系人具有一对多关系。
这就是我在域类中所做的。
public class Contact
{
public Contact()
{
public int ContactId {get; set;}
...
public int SpouseId {get; set;}
public virtual Contact Spouse {get; set;}
public in OrgId {get; set;}
public virtual Contact Organization {get; set;}
private ICollection<Contact> _individuals;
public virtual ICollection<Contact> Individuals
{
get {return _individuals;}
set {_individuals = value; }
}
...
}
}
我需要知道如何在上下文中的OnModelCreating()中正确映射它。如有任何帮助,我们将不胜感激。
这里有鱼腥味。如果一个组织是联系人,联系人有配偶,那么一个组织有配偶?
我想你需要一个联系人基类:
public class Contact {
int ContactId
ICollection<Contact> Contacts
EntityTypeEnum EntityType
}
但转念一想,您可能想要切换到图形数据库,因为它听起来像是您描述的节点和关系。
希望能有所帮助!