2011-01-13 9 views
0

Entity FrameworkのPOCOクラスに多対多の関係がマップされています。データベースでは、複合キーを持つ結合テーブルであり、POCOプロパティは正常に生成されます。Entity Framework 4、POCO、WCF、多対多の更新

コンテキストからエンティティを読み込むと、多対多コレクションからアイテムを削除でき、変更を保存するとデータベースが更新されます。例について

VAR項目= context.Items.First()。

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

context.SaveChanges();

しかし、分離されたオブジェクトグラフがWCFから戻ってくると、それをコンテキストに添付して、変更したものとしてマークします。しかし、その変化は持続されていません。

例:

//このシルバークライアント

item.OtherItems.Remove(item.OtherItems [0])上で起こります。

//およびサーバ

context.Items.Attach(アイテム)に関する。

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

context.SaveChanges();

この場合、レコードはデータベース内の結合テーブルから削除されません。どのように私はこれを動作させることができます任意のアイデア?非常に前もってありがとう。

答えて

0

エンティティが変更されたオブジェクト状態マークを変更します。 2つのエンティティ間の変更された関係をマークするには、ChangeRelationshipStateを使用する必要があります。これにより、結合テーブルでDBの変更が行われます。リレーションの状態を[追加]または[削除済み]に設定する必要があります。

+0

回答をいただきありがとうございました。 – user326502

関連する問題