Ich bin auf der Suche nach einer Möglichkeit, Datenbankabfragen abzufangen, um detailliertere Leistungsstatistiken zu erhalten. Ich bin nach Anzahl der Abfragen, Abfragedauer, den Ergebnisdaten (für eine Idee der Datengröße) und idealerweise einigen Zugriffen auf jeden LINQ-Ausdruck.Datenbankzugriffe mit EF Core abfangen
Ich kann auf die Erweiterung einer Basiskontextklasse zurückgreifen und eine andere Methode erstellen, um DbSet
zu erhalten, einen Wrapper dorthin zurückzubringen, aber 1) das scheint hackier, als es sein sollte, 2) kein Code wird es nicht können unterscheiden zwischengespeicherten Ergebnisse bekommen vs tatsächliche Datenbank zugreift ..
ich durch den Code geschaut haben und fühlen sich wie Einwickeln ExecutionStrategyFactory
oder Database
ist der Weg zu gehen - und während ich eine Erweiterungsmethode auf RelationalDbContextOptionsBuilder
für das ehemalige erstellen können, oder/replace/services, ich kann auch keine Möglichkeit zum Wrapping sehen, so dass die Implementierung des zugrunde liegenden Providers immer noch verwendet wird.
(Siehe auch: https://github.com/aspnet/EntityFramework/issues/6967)
Gibt es ein ordentliches Hotel in diese Haken?
Und wie machen Sie das für EFCore 2.0? Ich habe ein Problem mit den IDatabaseProviderServices. Mein Visual Studio kann es nicht finden, und ich glaube sogar, dass es nicht mehr da ist. –