2017-09-05 2 views
7

J'utilise Entity Framework Core 1.1.0 avec les migrations. Lorsque je les exécute avecComment rendre les migrations EF Core moins verbeuses

dotnet ef database update 

dans la console du gestionnaire de packages, la console est remplie de SQL appliqué. Au lieu de cela, je voudrais avoir imprimé uniquement les noms des migrations qui sont actuellement appliquées. Comment puis-je faire ceci?

Répondre

0

Je suppose sa configuration de votre projet.

Pour désactiver l'impression sql essayer cette

var builder = new DbContextOptionsBuilder<NAMEContext>(); 
builder.UseMySql(connectionString); 
builder.UseLoggerFactory(new MigrationLoggerFactory()); <--- this seems to be what you are looking for 
return new MigrationDataContext(builder.Options); 

MigrationLoggerFactory

public class MigrationLoggerFactory : ILoggerFactory 
    { 
     public void Dispose() { } 

     public ILogger CreateLogger(string categoryName) 
     { 
      if ("Microsoft.EntityFrameworkCore.Migrations".Equals(categoryName)) 
       return new MigrationLogger(); 

      return new NullLogger(); 
     } 

     public void AddProvider(ILoggerProvider provider) 
     { 
     } 
    } 

NullLogger

public class NullLogger : ILogger 
    { 
     public void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func<TState, Exception, string> formatter) 
     { 
      throw new NotImplementedException(); 
     } 

     public bool IsEnabled(LogLevel logLevel) 
     { 
      return false; 
     } 

     public IDisposable BeginScope<TState>(TState state) 
     { 
      return null; 
     } 
    } 

Voici un article qui pourrait également être utile