Есть ли способ узнать SQL, который создает Entity Framework?

#entity-framework #entity-framework-core

#entity-framework #entity-framework-core

Вопрос:

У меня есть приложение, которое использует EF Core. Есть ли у меня способ узнать, какой SQL выдается с запросами к базе данных?

Ответ №1:

Вы делаете это с помощью EF Logging, повышая уровень ведения журнала команд базы данных.

т.Е. поместите это в свой DbContext:

 public static readonly ILoggerFactory MyLoggerFactory
    = LoggerFactory.Create(builder =>
        {
            builder
                .AddFilter((category, level) =>
                    category == DbLoggerCategory.Database.Command.Name
                    amp;amp; level == LogLevel.Information)
                .AddConsole();
        });
  

И затем

 protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    => optionsBuilder
        .UseLoggerFactory(MyLoggerFactory) // Warning: Do not create a new ILoggerFactory instance each time
        .UseSqlServer(
            @"Server=(localdb)mssqllocaldb;Database=EFLogging;Trusted_Connection=True;ConnectRetryCount=0");
  

Комментарии:

1. Я использую SQLite. Возможно ли это также с SQLite?