1
完了したら作成するエンティティをクリーンアップする必要があるテストコードを作成しています。テストが途中で終了した可能性を考慮するため、テストが初期化されたときにクリーンアップコードを実行します。存在する可能性のあるエンティティフレームワークエンティティを削除する
私はエンティティを削除するには、この勧告
https://stackoverflow.com/a/5522422/141172
var category = new Category() { CategoryId = 1 };
context.Categories.Attach(category);
context.Categories.Remove(category);
context.SaveChanges();
を使用しています。エンティティがすでに(例えば、以前のテスト実行が正常にクリーンアップ)削除された場合は、
ctx.SaveChanges();
は、例外がスローされます:
ストアUPDATE、INSERT、またはステートメントを削除するには、行の予期せぬ 数に影響を与えた
(0)
これは完璧な意味を持っていますが、例外をキャッチすることはちょっと面倒です。エンティティをチェックするためにDBに余分な旅行を導入することなく、これを達成するためのよりクリーンな方法がありますか?
私はこのようなテストをすると、私は通常だけのTransactionScopeでとで、すべてを包みますテストの終わり、私はトランザクションをコミットしません。これはあなたができることですか? –