L'efficienza del database è una delle condizioni necessarie per il buon funzionamento di qualunque applicazione. Per questo motivo, spesso vengono fatti dei monitoring sui tempi di esecuzione delle query sia prima di andare in produzione sia durante l'esercizio. Eseguire questi monitoring a livello di database, ci permette di recuperare le query più lente o più gravose, ma non ci permette di effettuare una cosa molto importante: ricondurre la query SQL al codice LINQ che l'ha generata.
Per semplificare questo compito, EF Core 6 introduce un nuovo extension method: TagWithCallSite. Questo metodo aggiunge alla query un commento con il nome del file e la riga di codice in cui si trova la query LINQ che ha generato il comando SQL.
ctx.People .TagWithCallSite() .Where(...) .OrderBy(...) .ToList();
Il sisultato sara un codice SQL come questo.
-- file: C:\work\QueryLine.cs:21 SELECT * FROM Table WHERE 1=1
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Creare una libreria CSS universale: Cards
Autenticarsi in modo sicuro su Azure tramite GitHub Actions
Effettuare il refresh dei dati di una QuickGrid di Blazor
Triggerare una pipeline su un altro repository di Azure DevOps
Sfruttare gli embedding e la ricerca vettoriale con Azure SQL Database
Assegnare un valore di default a un parametro di una lambda in C#
Eseguire una ricerca avanzata per recuperare le issue di GitHub
Aggiungere interattività lato server in Blazor 8
Sfruttare i KeyedService in un'applicazione Blazor in .NET 8
Eseguire query manipolando liste di tipi semplici con Entity Framework Core
Creare un webhook in Azure DevOps
Gestire liste di tipi semplici con Entity Framework Core