2011-01-13 112 views
0

我在我的實體框架POCO類中映射了多對多關係。在數據庫中它是一個連接表具有複合鍵,POCO屬性產生的罰款。實體框架4,POCO,WCF,更新多對多

當我從上下文加載實體時,我可以從多對多集合中刪除一個項目,並且在保存更改時更新數據庫。

例如:

var item = context.Items.First();

item.OtherItems.Remove(item.OtherItems [0]);

context.SaveChanges();

但是,當分離的對象圖從WCF返回時,我將其附加到上下文並將其標記爲已修改。但這些變化並未持續。

實施例:

//發生這種情況Silverlight客戶端上

item.OtherItems.Remove(item.OtherItems [0]);

//並在服務器上

context.Items.Attach(項目);

context.ObjectStateManager.ChangeObjectState(item,EntityState.Modified);

context.SaveChanges();

在這種情況下,記錄不會從數據庫中的連接表中刪除。任何想法如何讓這個工作?首先十分感謝。

回答

0

改變對象的狀態,標誌着你的實體修改。您需要使用ChangeRelationshipState標記兩個實體之間的關係修正 - 這將在你的連接表進行修改DB。您需要將關係的狀態設置爲已添加或已刪除。

+0

謝謝你的迴應,即解決它。 – user326502 2011-01-14 16:17:38