2012-10-10 63 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):您可以 ,並且仍應該創建約束,但不包含參考 操作。如果你不能改變你的設計(或者這樣做會損害 的東西),那麼你應該考慮使用觸發器作爲最後的手段。