Entity Framework Core-Fehler: „Ein zweiter Vorgang wurde in diesem Kontext gestartet, bevor ein vorheriger Vorgang abgeschlossen wurde“
Beim Arbeiten mit Entity Framework Core in Bei einem ASP.Net Core 2.0-Projekt wird möglicherweise die Fehlermeldung angezeigt: „In diesem Kontext wurde ein zweiter Vorgang gestartet, bevor ein vorheriger Vorgang abgeschlossen wurde.“ Dieser Fehler kann auftreten, obwohl der Code lokal ohne Probleme ausgeführt wird, aber bei der Bereitstellung auf einem Staging-Server fehlschlägt.
Mögliche Ursachen:
Lösung:
DbContext als Transient registrieren:
Um das durch Abhängigkeit verursachte Parallelitätsproblem zu beheben Registrieren Sie den DbContext bei der Injektion als transient statt bereichsbezogen. Verwenden Sie den folgenden Code:
services.AddTransient<MyContext>();
Asynchrone Lambda-Ausdrücke vermeiden:
Wenn asynchrone Vorgänge verwendet werden, überarbeiten Sie den Code, um die Verwendung asynchroner Lambda-Ausdrücke zu vermeiden.
Gewährleisten Sie die Thread-Sicherheit:
Verstehen Sie die Einschränkungen der DbContext-Implementierung und stellen Sie die Thread-Sicherheit sicher, indem Sie Vorgänge sequentiell ausführen oder geeignete Synchronisierungsmechanismen verwenden.
Berücksichtigen Sie andere Faktoren:
Das obige ist der detaillierte Inhalt vonWarum gibt meine Entity Framework-Kernanwendung die Meldung „Ein zweiter Vorgang wurde in diesem Kontext gestartet, bevor ein vorheriger Vorgang abgeschlossen wurde' aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!