Ich habe seit einigen Stunden Freude an den Funktionen von Entity Framework Plus gegenüber Entity Framework 6 und insbesondere an IncludeFilter .
Mit dem regulären Entity Framework 6 konnte ich einfach ToString () auf einem IQueryable aufrufen, um auf einfache Weise die SELECT-Abfrage abzurufen, die tatsächlich auf DB Server verarbeitet wird.
Aber mit EF + bekomme ich nur Folgendes, wenn ich einen IncludeFilter anwende:
Z.EntityFramework.Plus.QueryIncludeFilterParentQueryable`1[MyRecord]
Weil ToString()
in EF + nicht auf dieselbe Weise überladen zu sein scheint.
Gibt es eine Möglichkeit, SQL sowohl für "IncludeFilter" -Abfragen als auch für klassische Abfragen zu generieren?
Ich weiß, dass ich es mit den entsprechenden Profilerstellungstools auf SQL Server selbst bekommen könnte, aber ich würde es gerne auf der Codeseite in EF tun können.
Gibt es eine Möglichkeit, SQL sowohl für "IncludeFilter" -Abfragen als auch für klassische Abfragen zu generieren?
Nein, momentan gibt es keinen Weg.
Es könnte später kommen, aber in diesem Moment bietet die Bibliothek diese Funktion nicht an.
(Ich bin der Besitzer)
BEARBEITEN: Kommentar beantworten
Meine Hauptsorge war zu wissen, ob die generierten Abfragen optimiert sind
Ich würde sie nicht als optimiert bezeichnen. Sie werden von Entity Framework generiert und nichts wird auf unserer Seite wirklich geändert.
Include
in EF6 Include
in EF Core Sie können das Protokoll des aktuellen Kontexts verwenden, um alle unter dieser Instanz ausgeführten Anforderungen zu verfolgen
context.Database.Log = s => Console.WriteLine(s);