Monitorar SQL gerados pelo Entity Framework

Neste post irei mostrar como monitorar todos os SQL gerados pelo entity framework, no output do visual studio.

enter image description here

Isto é algo importante, principalmente onde há consultas mais complexas que podem afetar o desempenho da aplicação.

O processo para visualizar os SQLs gerados no output do Visual Studio é bem simples, é apenas uma linha de codigo, no construtor da(s) classe(s) que herdem de DBContext:

Database.Log = s => System.Diagnostics.Debug.WriteLine(s);

A propriedade Logé um delegate do tipo Action<string> (Delegate: elemento que permite que você faça referencia a um método, parecido com ponteiros de funções) este delegate não retorna nada e espera um argumento s do tipo string.

Obs: Caso queira, você pode gravar estes comandos em arquivos para logs futuros.

Algo que uso também é colocar um if antes da instrução, para que o comando seja executado apenas em modo Debug:

#if DEBUG
    Database.Log = s => System.Diagnostics.Debug.WriteLine(s);
#endif

Delegates: C# - Delegates e Eventos : Conceitos básicos

Delegate Action: C# - O Delegate Action

comments powered by Disqus