2009-06-02 3 views
0

私はトランザクションを.NETで使い始めましたが、問題があります。私のDALの関数では、トランザクションスコープを使用します。関数の最後では、私はComplete()関数をトリガーします。トランザクション.NET

今、トランザクションスコープも使用するこの関数のテストがあります。このテスト関数の最後では、私は完全な()関数をトリガーしないので、テストではテストデータでデータベースが満たされません。これは正常に動作しているようです。

私のテスト機能でcomplete()をトリガすると、トランザクションは2回完了したようです。私はComplete()を2回トリガするので、これは論理的ですが、これを避ける方法はありますか?スコープを2回実行せずにComplete()関数を2回トリガする方法はありますか...もちろん、トランザクションをネストする方法が必要ですか?

答えて

0

私が理解しておいていただきたいのは、完全に呼び出さずに廃棄すると、取引がロールバックされ、また、TransactionScope supports nested transactionsです。ミックスとマッチして、あなたのテストが行​​うすべての作業をロールバックできるはずです。

0

はRequiresNewをオプションであなたの内のTransactionScopeを作成してみてください:

new TransactionScope(TransactionScopeOption.RequiresNew) 
+0

Thxでは、これらのネストされたトランザクションとTransactionScopeOptionを調べます。以前の問題を解決するRequiresNewを試しましたが、これにより新たな問題が発生します。 –

関連する問題