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
Usare la libreria PredicateBuilder per eseguire query tramite Entity Framework che usano or su più campi
Mappare una complex property di una entity su un campo JSON
Utilizzare ExecuteUpdate per aggiornare colonne JSON in Entity Framework
Creare un extension method per applicare condizionalmente una Where in una query LINQ per Entity Framework
Mischiare codice server side e client side in una query LINQ con Entity Framework
Creare espressioni riutilizzabili nelle query LINQ per Entity Framework


