LINQ para iniciantes 10 - Visualizar Query Sql de suas consultas

watch_later 2 de jul de 2013

Queria saber qual o sql gerado pelo LINQ

A maioria dos desenvolvedores iniciantes que estão usando o LINQ to SQL como seu back-end para interagir com o banco de dados (ou seja, para realizar a operação CRUD banco de dados) não tem uma idéia do que é criado ao fazer uma consulta ao banco usando LINQ.
Então eu decidi criar esse código para criar um log de como é o resultado final da consulta LINQ que irá chegar ao banco de dados.
Eu encontrei uma solução , que é fazer uso de propriedade Log do objeto DataContext. a propriedade Log me permite registrar as consultas no arquivo. Considere o código abaixo:

 
using (System.IO.StreamWriter sw = new System.IO.StreamWriter(@"e:\tempdatacontext.log"))
{
    EmployeeDataContext edb = new EmployeeDataContext();
    edb.Log = sw;
    var cust = from c in edb.Customers
              join d in edb.Distributors on
                new { CityID = c.CityId, StateID = c.StateId, 
                      CountryID = c.CountryId, Id = c.DistributorId }
                equals
                new { CityID = d.CityId, StateID = d.StateId, 
                      CountryID = d.CountryId, Id = d.DistributorId }
              select c;

    List<customer> custList = cust.ToList();
}

Então, uma vez que o código é executado, é hora de verificar o arquivo temporário. Quando abri o arquivo, encontrei a seguinte consulta que seria usada no meu banco de dados:
É divertido para verificar sua consulta pois você pode obter o código que gerado para consultar no Banco de dados e saber se sua consulta LINQ está correta ou com problemas.
Bom galera , ficamos por aqui a abaixo estão os links das postagens da mesma série , espero que seja útil ,qualquer dúvida comente , ou mande email para contato@virtualbase.com.br

Lista de Postagens da série LINQ PARA INICIANTES :