2012-10-10 65 views
4

我有以下实体框架5码第一类 EF两个关系

public class Airplane 
{ 
    public int Id { get; set; } 

    public int LeftWingId { get; set; } 
    public virtual Wing LeftWing { get; set; } 

    public int RightWingId { get; set; } 
    public virtual Wing RightWing { get; set; } 
} 

public class Wing 
{ 
    public int Id { get; set; } 
} 

飞机有一个左,一个右翅(两者都需要)。机翼可以属于0..1飞机(作为左翼或右翼)或其他“飞行装置”。 删除飞机应级联删除它的翅膀。

如何在代码优先的流利API中进行配置?

是否有可能在两个级联删除EF有两个0..1 --- 1关联?

回答

1

不幸的是,你不能有两个关联从同一个源表指向两个级联删除的同一个目标表。

但是,这不是由于EF中的限制,而是由于SQL Server中的限制。

answer on another question

报价,你可能要检查:

SQL Server会的级联路径简单计数,而不是 试图找出是否实际存在任何周期,它假定 最差,拒绝创建引用操作(CASCADE):您可以 ,并且仍应该创建约束,但不包含参考 操作。如果你不能改变你的设计(或者这样做会损害 的东西),那么你应该考虑使用触发器作为最后的手段。