10.04.2011

Como ver los comandos enviados al Entity Framework

Cuando utilizamos el Entity Framework constantemente nos preguntamos ¿ y que fue lo que se envió a la base de datos? A partir de esta pregunta surgen muchas herramientas tales como "profilers" comerciales - como eProf - , y el analizador de consultas de SQL Server o el de la base de datos que estemos utilizando. Sin embargo, estas soluciones pueden no ser suficientes porque pueden existir escenarios en donde sea necesario por seguridad o auditoría almacenar las sentencias SQL que se envían a la base de datos. Este post da solución a este problema.

Existe un tipo en el EntityFramework conocido como el ObjectSet<T>. Esta clase representa un conjunto de entidades sobre la cual se pueden ejecutar operaciones de eliminación, actualización, consulta, etc. El ObjectSet además tiene un método que se llama ToTraceString() el cuál nos permite obtener el comando enviado a la base de datos.

Para esto vamos a hacer un ejemplo sencillo donde vamos a consultar la tabla de consultores que vemos en el siguiente modelo del EF.

image

Si queremos obtener los consultores en la base de datos y a la vez ver la consulta enviada por parte del EF procedemos a ingresar el siguiente código.

image

El resultado a la hora de ejecutar la consulta anterior es el siguiente:

image

Etiquetas de Technorati:

No hay comentarios: