私のRIAサービスコンテキストクラスには、Task to Operationの関連付けのリストを含むエンティティセットTaskToOperationAssociationsがあります。RIAサービス:削除されたエンティティを列挙する
コレクションから削除された関連エンティティを「見つける」方法はありますか?私はコンテキストが削除されたAssociationへの参照をプライベートフィールドに持っていることがわかります(明らかに、削除操作を送信できるようにそれを追跡する必要があります)。ここ
は例です...私がある場合は、タスク "A"(とID = T1)とタスクB(IDはO1、O2とO3で)動作X、Y及びZに関連しています( ID = T2)は同じ動作と関連していると次のようにコレクションは... 3 TaskToOperationAssociationsを含むであろう
- 協会A1、タスクID = T1、OperationID = 1
- 協会A2、タスクID = T1、OperationID = 2
- アソシエーションA3、タスクID = T1、オペレーションID = 3
- 協会A4、タスクID = T2、OperationID = 1
- 協会A5、タスクID = T2、OperationID = 2
- 協会A6、タスクID = T2、OperationID = 3
IアソシエーションA1を除去しTaskToOperationAssociationsのプロパティ変更イベントをキャッチします。イベントハンドラでは、タスクT1の関連付けが変更されたかどうかを確認したいので、UIで保存ボタンを有効にすることができます。
希望はこれが理にかなっています。 ありがとう ベン
はい! context.EntityContainer.GetEntitySet().Where(x => x.EntityState == EntityState.Deleted)を実行できます。ありがとう、利用可能なプロパティを調べるときにクイックウォッチを使用する場合、EntityContainerは役に立たなかったかプライベートであると仮定していたはずです。 –
BenCr
私はこれを完全にテストしたわけではありません。以前テストしたことがありましたが、実際には動作しませんでした。 – BenCr
申し訳ありません、あなたの最後のコメントを説明できますか? AcceptChangesを呼び出すか、エンティティでIEditableObject.EndEditを実行した場合にのみ、変更が保存されます。それを呼び出すのに最適な時間は、送信される予定のChangeSetを表示するOnSubmitChangesメソッドになります。このために、DBContextの部分クラスを作成し、変更を検査するOnSubmitChangesメソッドをオーバーライドすることができます。 –