c# - que - Consultas de registro ejecutadas por Entity Framework DbContext
que es entity framework core (2)
Lo que está buscando es un artículo sobre operaciones de base de datos de registro e interceptación en MSDN.
La propiedad DbContext.Database.Log
se puede establecer en un delegado para cualquier método que tome una cadena. Más comúnmente se usa con cualquier TextWriter
configurándolo con el método de "Escritura" de ese TextWriter. Todos los SQL generados por el contexto actual se registrarán en ese escritor. Por ejemplo, el siguiente código registrará SQL en la consola:
using (var context = new BlogContext())
{
context.Database.Log = Console.Write;
// Your code here...
}
Estoy usando EF 6.0 con LINQ en el proyecto MVC 5. Quiero registrar todas las consultas SQL ejecutadas por Entity Framework DbContext para fines de depuración / medición de rendimiento.
En Java / Hibernate, se puede lograr un comportamiento equivalente al establecer la propiedad hibernate.show_sql=true
. ¿Es posible tener un comportamiento similar en Entity Framework?
Puede usar esta línea para iniciar sesión solo en la ventana "Salida" y no en una ventana de consola, de nuevo solo en el modo de depuración.
public class YourContext : DbContext
{
public YourContext()
{
Database.Log = sql => Debug.Write(sql);
}
}