【发布时间】:2013-01-18 20:49:15
【问题描述】:
我有一个以 A 为根的继承链,带有子类型 B 和 C。接下来,我有一个像这样的实体 E:
public class E
{
public Guid Id {get; set;}
public B B {get; set;}
public C C {get; set;}
}
导航属性应映射到两个一对一关联,其中 E 是主体,B、C 是从属。这将不起作用,因为 EF 将使用 E.Id 的值作为 B 和 C 的外键,这将导致表 A 中的重复键。我使用 TPT、TPC 或 TPH 都没有关系。
如果我将它映射为两个两个一对多关联并在 E 中使用不同的外键,即使用映射:
Entity<E>().HasRequired(x=>x.B).WithMany().HasForeignKey(x=>x.BId);
Entity<E>().HasRequired(x=>x.C).WithMany().HasForeignKey(x=>x.CId);
比级联删除不会朝着正确的方向工作。也就是删除e的时候要删除E.B和E.C。
有什么建议可以解决这个问题吗?
【问题讨论】:
标签: entity-framework ef-code-first