Molto spesso si ha l'esigenza di sapere che codice SQL genera Entity Framework per eseguire una query scritta con LINQ to Entities o Entity SQL. Per fare questo il modo più semplice è utilizzare il profiler di SQL Server, ma quando questo non è possibile, l'unica alternativa è utilizzare il metodo ToTraceString della classe ObjectQuery<T> da come nell'esempio seguente.
var r = ctx.Order.Where(o => o.ID == 1);
string sql = (r as ObjectQuery<Order>).ToTraceString();
return r.ToList();
In questo modo la variabile sql contiene il codice generato da Entity Framework che può quindi essere visualizzata in fase di debug o anche salvata in un file per scopi di logging.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare il metodo Index di LINQ per scorrere una lista sapendo anche l'indice dell'elemento
Utilizzare EF.Constant per evitare la parametrizzazione di query SQL
Utilizzare QuickGrid di Blazor con Entity Framework
Generare velocemente pagine CRUD in Blazor con QuickGrid
Utilizzare la funzione EF.Parameter per forzare la parametrizzazione di una costante con Entity Framework
Loggare le query più lente con Entity Framework
Persistere la ChatHistory di Semantic Kernel in ASP.NET Core Web API per GPT
Utilizzare il metodo IntersectBy per eseguire l'intersection di due liste
Change tracking e composition in Entity Framework
Filtrare i dati di una QuickGrid in Blazor con una drop down list
Usare le navigation property in QuickGrid di Blazor