2011-05-29 7 views
18

Utilizo Entity Framework Code First y me gustaría poder registrar todas las consultas SQL generadas por DbContext. En Linq a sql había un registro de DB y parece que no puedo encontrarlo en EF. Podría colocarlos en un registro o enviarlos a la página.Trace SQL Query en el código EF First

Estoy usando la versión 4.1.0.0 del ensamblado EntityFramework.

+0

¿el EF le permite pasar una conexión (en lugar de una cadena)? Sé de maneras si puede –

+0

(para poner eso en contexto, hacemos este seguimiento en todo el código de stackoverflow, y no usamos .Log) –

+0

Marc ¿utiliza una implementación de conexión personalizada que conecte el registro? –

Respuesta

6

Su mejor opción sería utilizar el Entity Framework Profiler, aunque desafortunadamente no es gratis.

También puede obtener manualmente el SQL que generará ejecutando un ToString() en el IQueryable en sí, pero eso tendrá que hacerse por consulta.

Una última opción es que si está utilizando MS Sql Server como su servidor, puede cargar el Sql Server Profiler (que viene con Sql Server Management Studio, creo) y registrar las sentencias SQL desde allí.

+1

El OP tiene suerte si decide comprar este generador de perfiles ya que el creador (Ayende) se va a casar hoy y ofrece un descuento del 29% hasta el 1 de junio. http://ayende.com/blog/8193/the-big-event-is-just-a-week-away – Mike

+0

Bueno, mierda, podría tener que finalmente comprarlo ahora también. $ 100 de descuento es un poco difícil de rechazar – KallDrexx

+1

Conozco las herramientas de perfilador. Me gustaría una solución de código que me dé salida en la página web de MVC. No quiero tener que hacerlo por consulta. Me gustaría un evento sobre el contexto que me permita capturar la consulta y registrarla. –

0

Con herramientas como EF, es más importante que nunca utilizar el Analizador de SQL Server, y debería ser la herramienta principal utilizada para este tipo de situaciones, si era importante cuando realmente escribimos las consultas es aún más importante ahora que estas herramientas se acumulan las consultas para nosotros, es algo que hay no sólo para la depuración, sino también para la optimización

+0

Algunas personas usan sql express que no admite perfiles. –

0

Miniprofiler una alternativa libre a la entidad de perfiles de marco que permitirá rastrear todas las consultas SQL realizadas durante web solicita

Cuestiones relacionadas