當我實現了一個雙向的1:基於這個答案1的關係:級聯刪除規則在EF 4.1代碼第一次使用的共享主鍵關聯
Primary /Foreign Key in Entity Framework
我定義的雙向關係是這樣的:
public class Student
{
public virtual int StudentId { get; set; }
public virtual Anamnesis Anamnesis { get; set; }
. . .
}
public class Anamnesis
{
[Key, ForeignKey("Student")]
public int AnamnesisId { get; set; }
public virtual Student Student { get; set; }
. . .
}
其中,Student是主體,Anamnesis是共享PK的實體。
現在我想創建的關係有一個Delete Rule = CASCADE。事實上,正在創建的關係已經刪除規則=所看到如下圖NO ACTION:
如果我手動刪除表屬性窗口中這種關係並添加其他關係與刪除規則= CASCADE ,代碼正常工作,因爲我希望允許我刪除一個學生,它是共享的具有相同ID的Anamnesis。
所以,在這裏不用我的問題:
有沒有在我的班級使用數據註釋(不流利API),使我得到一個CASCADE關係刪除規則的一種方式?我更喜歡使用數據註解,但如果這是不可能的,我會很高興與一些流利的API代碼,使這項工作。
注意
我已嘗試在此post顯示的流暢API代碼。它在我的雙向屬性的情況下不起作用。
嗯......現在我發佈了這個問題,我發現我忘記了'AnamnesisId'屬性的'virtual'關鍵字拉迪斯拉夫的答案與上面有聯繫。也許這是問題所在。我必須重新測試一遍。 :D – 2011-04-28 22:47:41
你能顯示完整的代碼嗎? EF代碼優先使用級聯刪除默認情況下每次都可能和我的例子在鏈接問題也使用它。 – 2011-04-28 22:49:40
@Ladislav:再次測試並檢查數據庫中創建的關係。它仍然是一樣的。沒有級聯。所以,虛擬關鍵字不是問題。定義關係的代碼是我上面展示的代碼。你還需要什麼嗎? – 2011-04-28 22:58:29