C# 在同一对象上定义1对1和1对多关系
我已经看了一段时间了…关于脑死亡 我有一个父对象所有者组和一个子对象所有者。这种关系是一对多的。此外,OwnerGroup有一个主所有者,因此我们有两个属性:int PrimaryOwnerId和Owner PrimaryOwner。我需要在这个和所有者之间定义一对一的关系。以下是POCO:C# 在同一对象上定义1对1和1对多关系,c#,entity-framework,entity-framework-6,C#,Entity Framework,Entity Framework 6,我已经看了一段时间了…关于脑死亡 我有一个父对象所有者组和一个子对象所有者。这种关系是一对多的。此外,OwnerGroup有一个主所有者,因此我们有两个属性:int PrimaryOwnerId和Owner PrimaryOwner。我需要在这个和所有者之间定义一对一的关系。以下是POCO: public class OwnerGroup { public int Id { get; set; } public int PrimaryOwnerId { get; set; }
public class OwnerGroup
{
public int Id { get; set; }
public int PrimaryOwnerId { get; set; }
public Owner PrimaryOwner { get; set; }
public virtual ICollection<Owner> Owners { get; set; }
}
public class Owner
{
public int OwnerGroupId { get; set; }
...
public virtual OwnerGroup{ get; set; }
}
将FK从OwnerGroup定义为Owner很容易,请参见以下内容:
builder.Entity<Owner>()
.HasRequired<OwnerGroup >(x => x.OwnerGroup )
.WithMany(x => x.Owners)
.HasForeignKey(x => x.OwnerGroupId);
让我大吃一惊的是将PrimaryOwner FK定义为Owner。我想,从技术上讲,这个字段PrimaryOwnerId应该可以为空
一如既往,我们非常感谢您的帮助。所有者是否可以是多个所有者组的主要所有者?OnwerGroup是否需要主要所有者?@emrenevayeshirazi是的,所有者可能是多个组的主要所有者。@jjj理想情况下,是的,组应该始终有一个主要所有者。