LINQ To SQL: Query Visualizer!

El otro día me comentaba Rodrigo Corral que le parecían interesantes muchos de los posts que tenemos publicados en el blog del CIIN, y que estaría bien que aparecieran también en Geeks, por lo que dicho y hecho, este es el primero de los posts que rescatamos de nuestro blog para republicarlo en Geeks, y en el futuro lo que haremos será crossposting entre ambos blogs (primero tendremos que averiguar cómo hacer Crossposting entre nuestro blog basado en WSS 3.0 y el blog del CIIN en Geeks).


Sin más preámbulos, pasemos a la acción. En un post previo introducimos LINQ To SQL. Vimos como podíamos crear consultas integradas en el lenguaje para obtener información de un origen de datos relacional SQL Server, estas consultas se realizaban contra objetos de un modelo de objetos en el que mapeábamos elementos de un esquema relacional (tablas, columnas de las tablas y procedimientos almacenados). También comentamos que LINQ se apoya en muchas de las innovaciones del lenguaje que vendrán con C# 3.0 y VB 9.0 y en características propias como la evaluación diferida de consultas, es decir, la consulta que he creado no se ejecuta hasta que itero con ella. En la práctica, este mecanismo de evaluación diferida de consultas nos da la ventaja de que podamos evaluar una consulta múltiples veces puesto que su definición permanece en memoria.


Además de estas características clave, LINQ To SQL nos ofrece herramientas interesantes para facilitar en tiempo de depuración algo tan típico como comprobar que consulta T-SQL se está enviando a la BD y probarla sin tener que irnos a SQL Server Management Studio o a la ventana de comandos de Visual Studio. Esta herramienta es el LINQ To SQL Query Visualizer, que el IDE de Visual Studio nos ofrece en tiempo de depuración al posicionar el puntero del ratón sobre el tipo que va a almacenar el resultado de la ejecución de la consulta realizada:






var ClientesMarcaCoche =


from c in BD2.Customers


join ve in BD2.Vehicles on


c.ID_Cliente equals ve.ID_Cliente


orderby c.CiudadCliente ascending


select new{NIF=c.ID_Cliente,


Nombre=c.NombreCliente,Coche=ve.MarcaVehiculo};


Para iniciar el Query Visualizer, no tenemos más que iniciar la ejecución del programa de LINQ To SQL en modo depuración y situar un punto de ruptura justo después de construir la consulta integrada en el lenguaje. Las capacidades del Visualizer aparecerán en el momento que pasamos el ratón sobre el tipo que almacena la consulta.



Si pulsamos sobre la pestaña asociada al icono de la lupa, podremos ver el LINQ To SQL Visualizer, en el que se nos mostrará:


·       La definición completa de la consulta que hemos definido en código, es decir, mostrando la llamada a los operadores estándar de consulta como métodos de extensión y las expresiones lambda que se están utilizando para luego generar la correspondiente sentencia T-SQL.


La sentencia T-SQL que se envía a la BD.



Como vemos, en el visualizador se muestra la consulta definida en un formato en el que no estamos utilizando Query Syntax y mostrando las expresiones lambda y otras innovaciones (tipos anónimos, inicialización de objeto, y uso de métodos de extensión a través de los operadores estándar de consulta) en el lenguaje que necesita para poder realizar la consulta.


Sin más, al pulsar el botón ejecutar podremos ver el resultado que nos devuelve la query T-SQL que LINQ genera a partir de la consulta definida en el lenguaje:



Como veis, esta herramienta es realmente útil (de hecho, ha causado sensación en el primer seminario que sobre LINQ impartimos en el CIIN) para comprobar que las consultas devuelven los resultados esperados sin abandonar el entorno de depuración de Visual Studio 2005. Y hasta aquí el primer post que rescatamos del blog del CIIN, comentaros también que el sábado por la mañana me instalé la Beta 1 de Orcas y por fin integra plenamente LINQ en el IDE, espero pronto poneros algún  ejemplo chulo de LINQ en Visual Studio Orcas.

Publicado por

Juan Carlos González

Juan Carlos es Ingeniero de Telecomunicaciones por la Universidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC). Cuenta con más de 12 años de experiencia en tecnologías y plataformas de Microsoft diversas (SQL Server, Visual Studio, .NET Framework, etc.), aunque su trabajo diario gira en torno a SharePoint & Office 365. Juan Carlos es MVP de Office Servers & Services desde 2015 (anteriormente fue reconocido por Microsoft como MVP de Office 365 y MVP de SharePoint Server desde 2008 hasta 2015), coordinador del grupo de usuarios .NET de Cantabria (Nuberos.Net, www.nuberos.es), co-fundador y coordinador del Grupo de Usuarios de SharePoint de España (SUGES, www.suges.es), así como co-director de la revista gratuita en castellano sobre SharePoint CompartiMOSS (www.compartimoss.com). Hasta la fecha, ha publicado 8 libros sobre SharePoint & Office 365 y varios artículos en castellano y en inglés sobre ambas plataformas.

Un comentario en “LINQ To SQL: Query Visualizer!”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *