我有两个类:实体框架:如何创建具有相同的对象双重关系(1-1和许多-1)
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; }
}
简单,高手有一个主要的子集来定义它,并且可以有0个或更多的“次要”子集。 我试着做映射这样
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);
但我预期(“主不能参加两个关系”)的异常。我不想改变我的模型,因为它适合我需要的东西,我该如何执行这样的映射?
想想你将如何在SQL中建模。无法用一个FK完成。 –