2016-12-30 6 views
2

In Entity Framework 6 können Sie unter der DbContext-Klasse die aktuelle Transaktion über context.Database.CurrentTransaction abrufen. Diese API scheint jedoch in EF.Core nicht verfügbar zu sein. Wie kann ich das aktuelle Transaktionsobjekt von einem dbcontext in EF.Core abrufen?So erhalten Sie die aktuelle Transaktion vom dbcontext

+1

Ich kann die älteren Versionen nicht überprüfen, aber in EF Core v1.1.0 können Sie den gleichen Code wie in EF6 verwenden. –

+0

Können Sie mich auf .Core Dokumentation verweisen, wo DbContext diese Eigenschaften zur Verfügung hat? Ich sehe diese nicht. – BKS

+1

Sicher, hier gehts https://docs.microsoft.com/en-us/ef/core/api/microsoft.entityframeworkcore.infrastructure.databasefacade#Microsoft_EntityFrameworkCore_Infrastructure_DatabaseFacade_CurrentTransaction –

Antwort

4

EF Core fehlt immer noch viele EF6-Funktionen, aber (langsam) holt auf.

In dieser Hinsicht kann ich nicht für frühere Versionen sagen, aber in der neuesten (bisher) v1.1.0 die DbContext.DatabaseCurrentTransaction Eigenschaft ist da, so können Sie den gleichen Code wie in EF6 verwenden, um darauf zuzugreifen.

-2

: Es ist kein Verfahren für die aktuelle Transaktion in Datenbank-Eigenschaft von DbContext abzurufen, anbyway eine Transaktion mit EF-Core zu starten, können Sie diesen Code hinzu:

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

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

     throw ex; 
    } 
} 

Lassen Sie mich wissen, wenn dies nützlich .

+0

Meine Frage ist nicht zum Starten, Commit oder Rollback einer Transaktion. Also sagen Sie, dass es eine fehlende Funktionalität ist, die in EF6, aber nicht in EF.Core verfügbar war? – BKS

+0

Der Link von @Ivan oben zeigt deutlich, dass dies in der neuesten Version von EF Core unterstützt wird. Nichts für ungut, aber deshalb stimme ich negativ auf deine Antwort – BKS

+1

Mach dir keine Sorgen, schön zu wissen, das Problem ist in der letzten Version von EF Core gelöst –

Verwandte Themen