Ef Core DbContext-Tracking über mehrere HTTP-Anfragen hinwegC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Ef Core DbContext-Tracking über mehrere HTTP-Anfragen hinweg

Post by Anonymous »

Ich habe mein eigenes einfaches Framework für Routing/Controller in C# und .NET Core. Ich verwende EF Core für das ORM. In Startup.cs konfiguriere ich es wie folgt:

Code: Select all

    public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext(options =>
{

options.EnableSensitiveDataLogging();
options.UseSqlServer(System.Environment.GetEnvironmentVariable("SQL_SERVER_CONNECTION"));
});
}
Ich verwende die Abhängigkeitsinjektion, um eine Instanz meines DbContext abzurufen. In meinen Controller-Aktionen mache ich Folgendes:

Aktion 1:
  • AsNoTracking() nicht für meine Abfragen verwenden
  • Änderungen an einer Modellinstanz vornehmen
  • Änderungen nicht speichern
Aktion 2 (ein anderes HTTP Anfrage):
  • Machen Sie buchstäblich alles
  • Führen Sie SaveChangesAsync()auf DbContext aus
Die in Aktion 1 vorgenommenen Änderungen werden dann beibehalten. Wenn ich in Aktion 1 Beziehungen getrennt habe, erhalte ich eine Fehlermeldung.

Ich weiß, dass DbContext standardmäßig einen Gültigkeitsbereich hat. Muss ich einen Teil meines eigenen Scoping-Codes implementieren, um sicherzustellen, dass ich bei jeder HTTP-Anfrage eine neue Instanz erhalte?

HINWEIS: Ich verwende NICHT MVC, sondern meine eigene kleine Bibliothek, die ich entwickle. Ich habe gerade erfahren, dass MVC wahrscheinlich IServiceScopeFactory verwendet, um Bereiche zu generieren. Ich bin mir jedoch nicht sicher, wie ich es in Middleware verwenden soll.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post