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 la libreria Benchmark.NET per misurare le performance
Eseguire una GroupBy per entity in Entity Framework
Ottimizzare il mapping di liste di tipi semplici con Entity Framework Core
Utilizzare l'operatore GroupBy come ultima istruzione di una query LINQ in Entity Framework
Utilizzare HiLo per ottimizzare le insert in un database con Entity Framework
Le novità di Entity Framework 8