在同一对象上定义1对1和1对多的关系

时间:2015-05-05 20:42:25

标签: c# entity-framework entity-framework-6

现在已经看了一会儿......关于脑死亡。

我有一个父对象(OwnerGroup)和一个子对象(所有者)。这种关系是1对多。此外,OwnerGroup有一个主要所有者,因此我们有两个属性:int PrimaryOwnerId和Owner PrimaryOwner。我需要在这个和所有者之间定义一对一的关系。以下是POCO:

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

将OwnerGroup中的FK定义为所有者很简单,见下文:

builder.Entity<Owner>()
                .HasRequired<OwnerGroup >(x => x.OwnerGroup )
                .WithMany(x => x.Owners)
                .HasForeignKey(x => x.OwnerGroupId);

绊倒我的部分是将PrimaryOwner FK定义为所有者。我想,从技术上讲,这个字段(PrimaryOwnerId)应该可以为空?

与往常一样,任何帮助都表示赞赏。

0 个答案:

没有答案