2011-01-25 12 views
10

Recientemente he estado investigando LINQ y quería saber más sobre él y estaba buscando un método simple para visualizar mis consultas y obtener más detalles sobre lo que está sucediendo durante la consulta.¿Hay alguna manera de ver las consultas de LINQ a medida que ocurren?

¿Alguien sabe de alguna herramienta que esté abiertamente disponible para lograr algo como esto?

Gracias,

Josh

Respuesta

10

Es posible que desee tomar en este artículo sobre Visual LINQ en el blog de Jon Skeet. Visual LINQ es una herramienta que le permitirá ver visualmente su consulta LINQ en acción.

Puede descargar directamente los archivos para here.

Espero que esto ayude.

Editar: El blog de Scott Gu también tiene un artículo sobre el LINQ to SQL Debug Visualizer, que podría ayudarte.

+0

+1 muy informativo – naveen

+0

Wow - ¡No sabía que existía algo así! Gracias Rionmonster, ¡esto debería ser lo que necesito! –

+0

Y si quiere hacer solo una pequeña salida de depuración, puede usar DataContext.Log o DataContext.GetCommand (query) .CommandText – rossisdead

1

Eso depende de qué tipo de LINQ estás hablando. Si se refiere a LINQ-to-Objects, entonces WYSIWYG; a excepción de algunos métodos que se optimizan para ciertas bibliotecas de marcos estándar (por ejemplo, el método de extensión Count() en IEnumerable es lo suficientemente inteligente como para llamar a la propiedad Count si el enumerable de destino implementa ICollection), no hay una optimización real que se haga en un caso por caso base

Para algo como LINQ-to-SQL, tendrá que utilizar una herramienta de supervisión específica de la base de datos, como el Analizador de SQL Server para MS SQL Server.

1

También puede usar el Analizador de SQL en SQL Management Studio (no disponible en la edición express). Puede ver cómo SQL Server maneja las consultas de Linq.

+2

Si bien el perfilador no se incluye con las ediciones Express, * puede * ejecutar trazas en un Express-powered base de datos. Esto significa que una instalación existente de Profiler puede ejecutarse en una base de datos Express, y los comandos T-SQL estándar también funcionarán. –

+0

@Adam: gracias por la información. Tendré que recordar eso en mi futuro proyecto. ¿Tiene algún buen enlace para dirigirme? ¿Es ese perfilador MS SQL u otro software comps? – jonnyb

+0

Aquí hay un buen lugar para comenzar a buscar: http://msdn.microsoft.com/en-us/library/ms188662.aspx No he utilizado ninguna otra herramienta de GUI aparte de SQL Server Profiler, pero me sorprendería mucho si ellos no existieron –

0

SQL Server Profiler es probablemente su mejor opción. Puede ver cómo se ejecutan las consultas y tener un registro en ejecución de todo lo que sucedió. Es muy configurable, se puede configurar para capturar sólo los eventos que le interesan

probar este video tutorial:. http://sqlserverpedia.com/wiki/Using_SQL_Server_Profiler

0

Una gran herramienta para LINQ a las consultas SQL que he utilizado muchas veces es el Linq to SQL Profiler. No solo muestra sus consultas, sino que también lo ayuda a comprender cómo se pueden optimizar para evitar riesgos como N + 1.

Cuestiones relacionadas