因此,我最終將自己的頭圍繞自我引用EF代碼中的多對多關係首先我想,但現在我可以進入關於最佳方式更新這些關係。EF代碼優先自引用多對多更新引用
比方說,我們有這樣的關係:
modelBuilder.Entity<Contact>()
.HasMany(c => c.Friends)
.WithMany()
與在Contact.cs
類以下內容:
public virtual iCollection<Contact> Friends {get;set;};
在我的聯繫人視圖,我有一個多選,選擇朋友的聯繫。然後通過遍歷所有選中的部分並運行thisContact.Friends.Add(friend)
並保存更改來保存。
然後,當您回到聯繫人視圖時,很容易找回.Friends
並重新填充多選,但我一直遇到重新保存新朋友的問題。什麼是最好的方式去做呢?我首先想到刪除所有的朋友,然後從多選中添加新的,但這似乎不是很有效,我不確定刪除.Friends
與保存Contact
有什麼關係。
是否有一種乾淨的方式來通過從multiselect中選擇的新項目,將其與thisContact.Friends
中已有的項目進行比較,添加新項目,刪除那些不存在並保留匹配的項目?
我希望這是有道理的,謝謝你提前!
只是取代朋友是迄今爲止最簡單的方法。這並不昂貴,因爲只涉及非常小的記錄(除非有數百個項目)。 –
你的意思是刪除存在的朋友,然後添加新的朋友? – blubberbo
是的。只有聯結表中的記錄被刪除並重新插入,而不是聯繫人本身。 –