2017-09-05 18 views
7

Tôi đang sử dụng Entity Framework Core 1.1.0 với di chuyển. Khi tôi chạy chúng vớiLàm thế nào để làm cho di chuyển EF lõi ít ​​tiết hơn

dotnet ef database update 

trong Bảng điều khiển quản lý gói, bàn điều khiển có đầy đủ áp dụng SQL. Thay vì điều này, tôi muốn chỉ in tên các di chuyển hiện đang được áp dụng. Tôi có thể làm cái này như thế nào?

Trả lời

0

Tôi giả định cấu hình dự án của bạn.

Để vô hiệu hóa sql in thử này

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

Dưới đây là một article mà cũng có thể hữu ích

Các vấn đề liên quan