0

オブジェクトが正しく保存されているかどうかを確認するために、このチェックを行う必要がありますか?

if (objectContext.SaveChanges() > 0)

そうでない場合は、例外をスローする必要がありますよね?

4

2 に答える 2

2

msdn のドキュメントによると、SaveChanges() メソッドは、追加、変更、または削除されたレコードの数を返します。スローされる例外は、InvalidOperationException または OptimisticConcurrencyException です。

レコードの数を確認することには、ある程度の価値があると思います。変更または削除を試みる有効なステートメントを発行しても、変更または削除するものが何もない場合、技術的には何も問題が発生していないため例外は発生しませんが、0 が返されます。

于 2009-08-20T18:53:24.467 に答える
2

MSDNによると:

SaveChanges はトランザクション内で動作します。ダーティな ObjectStateEntry オブジェクトのいずれかを永続化できない場合、SaveChanges はそのトランザクションをロールバックし、例外をスローします。

そのため、代わりに例外を試行/キャッチする必要があります。影響を受けるレコードの数を知りたい場合は、try ブロックでint recordsAffected = objectContext.SaveChanges();

例については、MSDN リンクを見てください。

于 2009-08-20T18:55:19.237 に答える