2012-04-02 8 views
0

不正な文字が(例えば「/」)を使用してオブジェクトを保存しようとする例外がのWindows AzureのTableServiceContext UndoChanges

_tableServiceContext.AddObject(tableName, myEntity); 

を呼び出すときに、私はSystem.Data.Services.Clientを取得スローされます。 DataServiceRequestExceptionの情報が「範囲外」であるため、(不正な文字を防止またはチェックすることで)容易に防止できます。

私の質問は今、どのように私はこの状態から回復しますか?このようなエラーの後で、おそらく "破損したオブジェクト"が依然としてコンテキストに属しているため、後続のすべてのAddObject呼び出しが失敗します。

したがって、私は "UndoChanges"の可能性を探しています。

ヒントありがとう、ありがとう。私は、コンテキストを捨てるか、コンテキストからオブジェクトを削除するには、より良い方法を探してい

P.S: ...

答えて

1

最良の方法は、文脈からエンティティをデタッチすると考えられます。それが何らかの理由でオプションでない場合は、SaveChangesOption.ContinueOnErrorsを設定して保存を再試行できます。例:

これは基本的に、すべての更新をバッチではなく1つずつ適用します。違法なエンティティからのエラーだけでなく、発生したすべてのエラーを無視することに注意してください。

+0

コンテキストからエンティティを分離することは、必要なものを達成することです。クイックヘルプのおかげです。 – FrankE

+0

ああ、良い。あなたが「コンテキストからオブジェクトを削除する」ことを望んでいないので、それはオプションではないと思った。 –