我有一個供應商實體,每個供應商對象可能引用另一個供應商對象作爲其「父」。實體框架4.1代碼優先 - 無法刪除兩個實體之間的關係
public class Supplier
{
public int? Id { get; set; }
public virtual Supplier Parent { get; set; }
}
這一切都如預期,直到我試圖刪除的關係,如,供貨商不再有父的作品。我可以將它從null更改爲特定的供應商,我可以將其設置爲不同的供應商,但將其設置爲null不會在SaveChanges()後保留。
supplier.Parent = null;
供應商表中的外鍵「ParentId」被設置爲可空。明確定義關係並沒有幫助。
modelBuilder.Entity<Supplier>().HasOptional(s => s.Parent).WithMany();
我敢肯定我錯過了一些明顯的東西。
我們不使用外鍵屬性,即ParentId – SeeNoWeevil 2012-01-09 11:26:06
有沒有什麼好的理由不? – 2012-01-09 12:38:12
我有同樣的問題,斯蒂芬是正確的,你必須定義一個外鍵。見亞瑟維克斯的帖子在這裏:http://social.msdn.microsoft.com/Forums/en-US/adonetefx/thread/35e7438b-ec1f-4d1f-bca0-539ccfb9abb1/ – Marthijn 2012-01-09 12:43:16