sintaxis query new example espaƱol c# .net linq-to-sql

query - select linq c# example



Obtener consulta SQL de LINQ a SQL? (2)

Tengo una consulta que estoy pasando byte[] como parámetro. Estoy tratando de sacar la consulta SQL y ejecutar esa consulta en el estudio de administración para depurar. ¿Cómo puedo extraer la declaración SQL de ella?

committeeMember = db.Committee_Member.FirstOrDefault(x => x.Customer_Number == activity.Contact.Number && x.Position_Start_Date.Value.Year == activity.EndDate && x.Committee_Id == activity.Committee.Id && x.Cancelled != 1);


En el depurador, sitúe el cursor sobre la variable commiteeMember - se mostrará la consulta SQL generada:

Esto es lo que ToString() devuelve para la consulta. Puede obtener la misma consulta SQL generada manualmente llamando a ToString:

string sql = committeeMember.ToString();

Este método reemplazado llama internamente a ObjectQuery.ToTraceString() que devuelve comandos que se ejecutarán en el origen de datos.

También puede usar el Analizador de SQL o Entidad Framework Profiler para ver qué consulta SQL se ejecutó.


Por cierto, LINQ to SQL no es un marco de entidad. Si el primero, puede establecer [yourDataContext].Log = Console.Out (o alguna otra [yourDataContext].Log = Console.Out secuencias ) y obtener la consulta.

En la consulta que tienes, considera escribirla de la siguiente manera para poder hacer el truco ToString :

var committeeMemberQuery = db.Committee_Member.*WHERE* (x => x.Customer_Number == activity.Contact.Number && x.Position_Start_Date.Value.Year == activity.EndDate && x.Committee_Id == activity.Committee.Id && x.Cancelled != 1 ); var committeeMember = committeeMemberQuery.FirstOrDefault();

Ahora puedes hacer committeeMemberQuery.ToString() sin embargo no obtendrás información de parámetros (lo harás con DataContext.Log = Console.Out pero de nuevo, eso no es Entity Framework, es LINQ to SQL.