Entity Framework permette di conoscere il codice che sarà generato da una query mediante il metodo ToTraceString della classe ObjectQuery. Nel caso del dominio generato a partire dal database Northwind, sarà quindi possibile ricavare nel seguente modo il codice generato per estrarre l'insieme dei clienti:
using(NorthwindEntities domain = new NorthwindEntities())
{
ObjectQuery<Customer> query = domain.CustomerSet;
string sql = query.ToTraceString();
}
Poichè gli expression tree di Entity Framework sono di tipo ObjectQuery<T>, effettuando un cast verso di esso sarà possibile ricavare il codice generato da una query arbitraria:
using(NorthwindEntities domain = new NorthwindEntities())
{
string sql = ((from c in domain.CustomerSet where c.City == "London" orderby c.CompanyName select c) as ObjectQuery<Customer>).ToTraceString();
}
Utilizzando l'implementazione non generica di ObjectQuery, infine, è possibile conoscere il codice generato da una query che si avvale degli anonymous types:
using(NorthwindEntities domain = new NorthwindEntities())
{
string sql = ((from c in domain.CustomerSet where c.City == "London" orderby c.CompanyName select new { c.CompanyName, c.ContactName}) as ObjectQuery).ToTraceString();
}