2017-09-05 15 views
7

移行でEntity Framework Core 1.1.0を使用しています。パッケージマネージャコンソールでコンソールを実行すると、コンソールに適用されたSQLがいっぱいです。EFコアの移行をより控え目にする方法

dotnet ef database update 

この代わりに、現在適用されているマイグレーションの名前だけを印刷したいと思います。これどうやってするの?

答えて

0

あなたのプロジェクトの設定を前提としています。この

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); 

を試みるSQLの印刷を無効にするには

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; 
     } 
    } 

ここにいるarticleです役に立つかもしれない

関連する問題