我有两节课:
class Sub
{
public Guid Id { get; set; }
public DateTime ValidDate { get; set; }
public Guid MasterId { get; set; }
public Master Master { get; set; }
}
和
class Master
{
public Guid Id { get; set; }
public int Data { get; set; }
public ICollection<Sub> Subs { get; set; }
public Sub MainSub { get; set; }
}
简单来说,master 有一个 main sub 来定义它,并且可以有 0 个或多个“secondary” subs。我试过用这种方式映射
var mBuilder = modelBuilder.Entity<Master>();
mBuilder.HasMany(m => m.Subs).WithOne(m => m.Master).HasForeignKey(m => m.MasterId);
mBuilder.HasOne(m => m.MainSub).WithOne(m => m.Master);
但正如预期的那样,我有一个例外(“大师不能参与两个关系”)。我不想更改我的模型,因为它符合我的需要,我该如何执行这样的映射来做到这一点?