В прошлом я видел четкие распечатки операторов SQL из Entity Framework, отправленных в регистратор, исторически путем установки DbContext.Database.Log
. Кажется, что все изменилось, и я не могу заставить их работать.
Эта страница от MS подразумевает, что настройка ведения журнала для ASP.NET Core автоматически настраивает ведение журнала объекта. После этого я настроил ведение журнала, используя файл appsettings.json
, как показано ниже:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"System": "Information",
"Microsoft": "Information",
"Microsoft.EntityFrameworkCore": "Debug",
}
}
}
Это приводит к появлению большого количества журналов из Entity Framework Core, однако ни один из них не является запросом. Я ожидаю увидеть записи от Microsoft.EntityFrameworkCore.Database.Command
, но я не вижу. Как получить операторы SQL в журналах?
Я знаю, что это похоже на некоторые другие вопросы, но ни один из них не помог мне.
Обновление: все ответы были направильном пути. Фактическая проблема заключалась в использовании поставщика. Для предварительной разработки мы использовали базу данных в памяти. Этот поставщик не регистрирует операторы SQL (это не база данных SQL). Для полноты конфигурации регистратора необходимо было:
{
"Logging": {
"LogLevel": {
"Microsoft.EntityFrameworkCore.Database.Command": "Information"
}
}
}