¿Cómo registrar consultas utilizando Entity Framework 7?

entity-framework entity-framework-core

Pregunta

Estoy usando Entity Framework 7 en el canal de compilación nocturna (en este momento estoy usando la versión EntityFramework.7.0.0-beta2-11524) y estoy tratando de registrar las consultas que EF genera solo por curiosidad.

Estoy escribiendo un programa de consola simple. Intenté usar la misma técnica de registro que usa EF6, pero DbContext.Database.Log no está disponible en Entity Framework 7. ¿Hay alguna forma de registrar o simplemente echar un vistazo al SQL generado por EF7?

Respuesta aceptada

Para aquellos que usan EF7 nada de lo anterior funcionó para mí. Pero así es como lo tengo funcionando. (Del comentario de @avi cherry)

En su Startup.cs usted probablemente tiene un método de configuración con un montón de configuraciones en él. Debería verse como abajo (además de tus cosas).

    public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory)
    {
        //this is the magic line
        loggerFactory.AddDebug(LogLevel.Debug); // formerly LogLevel.Verbose

        //your other stuff

    }

Respuesta popular

Puede iniciar sesión en la consola con este código, estoy seguro de que se incluirá en una api más simple más adelante:

using System;
using Microsoft.Data.Entity.Infrastructure;
using Microsoft.Data.Entity.Utilities;
using Microsoft.Framework.Logging;

public static class SqlCeDbContextExtensions
{
    public static void LogToConsole(this DbContext context)
    {
        var loggerFactory = ((IAccessor<IServiceProvider>)context).GetService<ILoggerFactory>();
        loggerFactory.AddProvider(new DbLoggerProvider());
    }
}

Y el DbLoggerProvider se implementa aquí: https://github.com/ErikEJ/EntityFramework7.SqlServerCompact/tree/master/src/Provider40/Extensions/Logging



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué