EF6 schließt jeden einzelnen Aufruf einer gespeicherten Prozedur in eine eigene Transaktion ein. Wie kann man das verhindern?

Profiling mit SQL Server Profiler: EF 6 umschließt jeden einzelnen Aufruf einer gespeicherten Prozedur mitBEGIN TRAN undCOMMIT TRAN.

Ist es nicht eine brechende Veränderung?

Vielleicht ist es nicht nur eine bahnbrechende Veränderung, sondern macht jede Transaktionslogik in SPs wie wir unmöglichnoch nie können unsere Transaktion in der gespeicherten Prozedur mit zurücksetzenROLLBACK TRAN (Hinweis: In SQL Server gibt es keine verschachtelten Transaktionen.) Ein Rollback wird auf zurückgesetzt@@TRANCOUNT Null. Da wir in einer Transaktion waren, weil EF 6, haben wir "Transaktionsanzahl nach AUSFÜHREN zeigt eine nicht übereinstimmende Anzahl von BEGIN- und COMMIT-Anweisungen an. Vorherige Anzahl = 1, aktuelle Anzahl = 0." Standard-SQL Server-Fehler.

Bitte fragen Sie mich nicht, warum ich gespeicherte Prozeduren aufrufen möchte. Ich habe Hunderte und alle benutzen sieTRY ... COMMIT ... CATCH ROLLBACK Logik.

Irgendwelche Ideen, wie ich EF 6 daran hindern kann, dies zu tun?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage