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
Eseguire query in contemporanea con EF
Mischiare codice server side e client side in una query LINQ con Entity Framework
Usare la parola chiave field per semplificare la scrittura di proprietà in C#
Utilizzare ExecuteUpdate per aggiornare colonne JSON in Entity Framework
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
Creare espressioni riutilizzabili nelle query LINQ per Entity Framework




