7
移行でEntity Framework Core 1.1.0を使用しています。パッケージマネージャコンソールでコンソールを実行すると、コンソールに適用されたSQLがいっぱいです。EFコアの移行をより控え目にする方法
dotnet ef database update
この代わりに、現在適用されているマイグレーションの名前だけを印刷したいと思います。これどうやってするの?
移行でEntity Framework Core 1.1.0を使用しています。パッケージマネージャコンソールでコンソールを実行すると、コンソールに適用されたSQLがいっぱいです。EFコアの移行をより控え目にする方法
dotnet ef database update
この代わりに、現在適用されているマイグレーションの名前だけを印刷したいと思います。これどうやってするの?
あなたのプロジェクトの設定を前提としています。この
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です役に立つかもしれない