Para saber qual foi a query Sql gerada ao executar uma instrução LINQ, basta usar o seguinte código:

string strQuery = (qLinq as ObjectQuery).ToTraceString();
// é necessário: using System.Data.Objects;

Exemplo:

Linq:

var qLinq = from t in c.TABELAs
            where t.CAMPO1 < i
            select t;

Lambda:

var qLambda = c.TABELAs.Where(t => t.CAMPO1 < i);

Query SQL Gerada:

SELECT
       [Extent1].[CAMPO1] AS [CAMPO1],
       [Extent1].[CAMPO2] AS [CAMPO2]
  FROM [dbo].[TABELA] AS [Extent1]
 WHERE [Extent1].[CAMPO1] < @p__linq__1

OBS: A Sql gerada é igual tanto para a Query Linq quanto para a Lambda Expression.

Essa dica foi o Marquinhos que me passou.

Anúncios