2010-01-18 8 views
5

He estado desarrollando una página ASP.NET y he estado utilizando LINQ para manejar hablar con el servidor MS SQL. Estoy bien en SQL básico, sin embargo, estoy mucho mejor con el diseño de consultas utilizando LINQ. Sé que son similares, pero me resulta más fácil diseñar consultas complejas en LINQ. Mi pregunta es esta: ¿hay alguna manera de diseñar una consulta en LINQ y luego obtener el SQL que generó? Me gustaría insertar el SQL en un procedimiento almacenado ya que varias páginas (fuera de mi control) necesitarán hacer la misma consulta.¿Hay alguna manera de obtener el SQL creado por una consulta LINQ?

+0

LINQ to SQL? LINQ a las entidades? LINQ a algo más? (Todos estos, por cierto, ya han sido respondidos repetidamente en este sitio, puede intentar una búsqueda.) –

Respuesta

6

Sí. El contexto de la base de datos LINQ tiene una propiedad Log que genera el SQL que ejecutó. También puede hacerlo a través de un producto gratuito llamado LinqPad y un producto comercial llamado Linqer.

+1

También puede usar DataContext.GetCommand (consulta). – itowlson

3

Se puede conseguir 2 maneras:

  1. Uso LINQPad
  2. uso ToString() en la consulta para obtener su forma de SQL:

    var query = de x en alguna_tabla donde x .SomeField == 5 select x.SomeOtherField; Console.WriteLine (query.ToString());

1

Si desea obtener más información en profundidad a continuación, puede utilizar Linq to Sql Profiler que mostrará todas las consultas, así como alerts

1

Al escribir las declaraciones de LINQ que se ejecutan en SQL Server, siempre globo ocular en Analizador de SQL Server. La interpretación que se ejecuta dentro de SQL a menudo te sorprenderá.

En las herramientas de rendimiento/SQL Server Profiler, inicie un nuevo seguimiento.

ejecutar su consulta en su aplicación, agarrar la salida de perfiles pegar en el Analizador de consultas SQL Server

Cuestiones relacionadas