2016-06-23 4 views
0

ODataサービスを消費するWCFクライアントがあります。ある時点で、ユーザーはエンティティを削除できます。私はDataServiceContext.DeleteObject(object entity)メソッドでこれを行います。 Entity.StateがDeletedになります。WCFの元に戻すエンティティ

ユーザーは削除を元に戻すことができます。どのように状態をModifiedに戻すことができますか?

+0

メソッド 'DataServiceContext.ChangeState(obj、EntityStates.Modified) 'で状態を設定しようとしましたが、これは機能しません。 – scher

答えて

0

私はようやくによってそれを行うには達成:

DataServiceContext.Detach(obj); 
DataServiceContext.AttachTo("EntitySetName", obj); 

これは、オブジェクトから削除し、ステータスを削除し、修正され、それを追加しました。

0

REST APIはステートレスです(または、そうでなければなりません)。削除されたものは元に戻すことはできません。それはなくなった。

できないことは削除しないことです。むしろ、trueに設定し、何かを削除するときに保存し、削除を取り消したいときはfalseに戻すことができるように、データにIsDeletedフラグを保持します。明らかに、すべてのクエリと変更でこのフラグを考慮する必要があります。

+0

私は私の質問を明確にしなければならないと思う。変更(削除)はサービスに送信されません。私はエンティティの状態を「削除されていない」と設定し、サービスへの送信時に削除されないようにします。 – scher