Heim > Backend-Entwicklung > C++ > Wie kann ich das von Entity Framework Core IQueryable generierte SQL anzeigen?

Wie kann ich das von Entity Framework Core IQueryable generierte SQL anzeigen?

Barbara Streisand
Freigeben: 2025-01-03 06:15:39
Original
214 Leute haben es durchsucht

How Do I View the SQL Generated by Entity Framework Core IQueryable?

So zeigen Sie SQL an, das von Entity Framework Core IQueryable generiert wurde

Frage:

In Entity Framework Core, wie greifen Sie auf den von einem IQueryable-Objekt generierten SQL-Code zu? Die in früheren Versionen verfügbare ToTraceString()-Methode ist in EF Core nicht vorhanden.

Antwort:

EF Core 5/6 / Net 5/ 6

Für EF Core 5 und 6 mit .NET 5 und 6 können Sie ToQueryString() verwenden Methode:

var query = _context.Widgets.Where(w => w.IsReal && w.Id == 42);
var sql = query.ToQueryString();
Nach dem Login kopieren

Für ältere Versionen von .NET Core kann eine Erweiterungsmethode verwendet werden:

Core 2.1.2

public static string ToSql<TEntity>(this IQueryable<TEntity> query)
{
    // Reflection and casting voodoo to get EF internal classes
    var sql = ...;

    return sql;
}
Nach dem Login kopieren

EF Core 3.0

public static string ToSql<TEntity>(this IQueryable<TEntity> query)
{
    using (var enumerator = query.Provider.Execute<IEnumerable<TEntity>>(query.Expression).GetEnumerator())
    {
        // More reflection and casting voodoo
        var sql = ...;

        return sql;
    }
}
Nach dem Login kopieren

EF Core 3.1

public static string ToSql<TEntity>(this IQueryable<TEntity> query) where TEntity : class
{
    using (var enumerator = query.Provider.Execute<IEnumerable<TEntity>>(query.Expression).GetEnumerator())
    {
        // Even more reflection and casting voodoo
        var sql = ...;

        return sql;
    }
}
Nach dem Login kopieren

Hinweis:

Für EF Core-Versionen vor 5 ist Reflektion erforderlich, um das von einem IQueryable generierte SQL abzurufen.

Das obige ist der detaillierte Inhalt vonWie kann ich das von Entity Framework Core IQueryable generierte SQL anzeigen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage