2016-12-30 25 views
2

Entity Framework 6では、DbContextクラスの下で、context.Database.CurrentTransactionによって現在のトランザクションを取得できます。ただし、このAPIはEF.Coreでは使用できないようです。 EF.Coreのdbcontextから現在のトランザクションオブジェクトを取得するにはどうすればよいですか?dbcontextから現在のトランザクションを取得する方法

+1

古いバージョンはチェックできませんが、EF Core v1.1.0ではEF6と同じコードを使用できます。 –

+0

DbContextで利用可能なこれらのプロパティがあるドキュメントを.Coreドキュメントに紹介できますか?私はこれらを見ない。 – BKS

+1

確かに、ここに行くhttps://docs.microsoft.com/en-us/ef/core/api/microsoft.entityframeworkcore.infrastructure.databasefacade#Microsoft_EntityFrameworkCore_Infrastructure_DatabaseFacade_CurrentTransaction –

答えて

4

EFコアにはまだ多くのEF6機能が欠けていますが、(ゆっくりと)追いついています。

この点に関して、私は以前のバージョンについては言えませんが、最新バージョン(これまで)v1.1.0にはDbContext.DatabaseCurrentTransactionのプロパティがあるため、EF6と同じコードを使用してアクセスできます。

-2

DbContextのデータベースプロパティに現在のトランザクションを取得する方法はありません、EFコアとの取引を開始するanbyway、あなたはこのコードを追加することができます

using (var transaction = dbContext.Database.BeginTransaction()) 
{ 
    try 
    { 
     // add code for ef core 

     transaction.Commit(); 
    } 
    catch (Exception ex) 
    { 
     transaction.Rollback(); 

     throw ex; 
    } 
} 

はこれが便利であれば、私に教えてください。

+0

私の質問は、トランザクションの開始、コミット、ロールバックの方法に関するものではありません。あなたはEF6で利用可能でしたが、EF.Coreでは利用できなかった機能がないと言っていますか? – BKS

+0

上記の@Ivanによって提供されるリンクは、これがEFコアの最新バージョンでサポートされていることを明確に示しています。 – BKS

+1

EFコアの最後のバージョンで解決された問題を知ってもいいですか? –

関連する問題