0

ToDoサンプルを試していたところ、同時実行処理を試しているときに未処理のExcaptionが発生しました。

dataservice.jsには、saveFailed(error)メソッドに次の行が含まれています。

if (detail && detail.ExceptionType.indexOf('OptimisticConcurrencyException') !== -1) {
        // Concurrency error 
        reason =
            "Another user, perhaps the server, may have deleted one or all of the todos.";
        manager.rejectChanges(); // DEMO ONLY: discard all pending changes
    }

次の未処理のOptimisticConcurrencyExceptionが原因で、クライアントがこのポイントに到達することはありません。

[HttpPost]
    public SaveResult SaveChanges(JObject saveBundle) {
        return _contextProvider.SaveChanges(saveBundle);
    }

私はこれをキャッチして、例外がタイプではないのでちょっとばかげた例外を返そうとしていましたSaveResult。これはバグですか、それともどこかに設定がありませんか?

挨拶

4

2 に答える 2

1

サーバー側のエラーはすべてpromise.failハンドラーに返される必要があります。すなわち

em.saveChanges().then(function(saveResult) {
   // normal path

}).fail(function(error) {
   // your concurrency exception message will be part of the error object. 
});
于 2012-12-13T08:55:01.720 に答える
0

ここでエラーが発生しました...VSの例外ウィンドウで[続行]をクリックすると、JavaScriptハンドラーが実行されます。

于 2012-12-13T09:46:19.623 に答える