SQL-Code aus Entity Framework Core IQueryable extrahieren
In Entity Framework Core ist das Abrufen des durch eine IQueryable-Abfrage generierten SQL-Codes für das Debuggen von entscheidender Bedeutung und Leistungsanalyse. Im Gegensatz zu früheren Versionen von Entity Framework ist ToTraceString jedoch nicht mehr in EF Core verfügbar.
EF Core 5/6
In neueren Versionen von EF Core (5.0 und oben) können Sie den SQL-Code mit der ToQueryString()-Methode abrufen:
var query = _context.Widgets.Where(w => w.IsReal && w.Id == 42); var sql = query.ToQueryString();
EF Core 2.1.2 und älter
Für ältere Versionen von EF Core (2.1.2 und niedriger) können Sie den folgenden Code verwenden, um den SQL-Code zu erhalten:
public static string ToSql<TEntity>(this IQueryable<TEntity> query) { // ... (code omitted for brevity) ... }
Hinweis dass dieser Code eine Erweiterungsmethodendefinition erfordert, um auf interne Felder von EF Core zuzugreifen.
EF Core 3.0
In EF Core 3.0 können Sie die folgende Methode verwenden:
public static string ToSql<TEntity>(this IQueryable<TEntity> query) { // ... (code omitted for brevity) ... }
Diese Methode erfordert auch eine Erweiterungsmethodendefinition, um auf interne Felder zuzugreifen.
EF Core 3.1 und höher
Ab EF Core 3.1 können Sie das verwenden Folgende Methode:
public static string ToSql<TEntity>(this IQueryable<TEntity> query) where TEntity : class { // ... (code omitted for brevity) ... }
Diese Methode verwendet Reflektion, um auf interne Felder zuzugreifen und SQL-Code aus IQueryable-Abfragen bereitzustellen.
Das EF Core-Team plant außerdem die Einführung einer offiziellen Methode zum Abrufen von SQL-Code Zukünftige Veröffentlichungen.
Das obige ist der detaillierte Inhalt vonWie extrahiere ich SQL-Code aus Entity Framework Core IQueryable?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!