2017-12-04 5 views
3

現在、私は.netコア2プロジェクト(EFCore 2.01)でNUnitを使用した統合テストの基本クラスを用意しています。このプロジェクトでは、セットアップ時にトランザクションを作成し、テストを切り離すためにロールバックを行います。プロセスが終了した場合のEFCoreトランザクションロールバック動作

public class BaseTestsWithRollbackPerTest : BaseTests 
{ 
    [SetUp] 
    public void Setup() 
    { 
     this.Transaction = this.ApplicationContext.Database.BeginTransaction(); 
    } 

    [TearDown] 
    public void TearDown() 
    { 
     this.Transaction.Rollback(); 
    } 
} 

誰かがテストを中止したり、PC/VS2017のハングを遮断する可能性がある場合、私の大学の一つは、私がチェックし、データベースおよびXACT_ABORTいるなど

を我々が取引を長引くたかもしれない懸念を育てました私はその設定を変更することができない可能性がありますので、これは長い既存のデータベースです。

私の質問は、これでEFCoreの標準的なプロセスは何ですか?それは取引を中止するか、それを続けるか?私が見つけられなかった設定がありますか?どんな助けでも大歓迎です。

+0

これはADO.NETと違いはありません –

+0

@IvanStoevは今すぐGoogle検索を拡張しています –

答えて

1

トランザクションがコミットされない場合、トランザクションはタイムアウトし、SQLServerはロールバックを実行します。 SQLServerはEFではなく、これを処理します。

関連する問題