Журнал использования Entity Framework Core в ASP.NET Core показывает оператор SQL

В процессе разработки мы хотим просматривать операторы SQL, выполняемые EF Core во время отладки. Вы можете использовать инструмент SQL Studio Manager Tools. Другой способ - использовать журналы, предоставляемые EF Core.
Действия по использованию журналов Entity Framework Core в ASP.NET Core:

1. Установите метод запуска

Удалите узел IIS в файле launchSettings.json, чтобы запустить программу как консольное приложение.

2. Настройте логи в Programm.cs

using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;

namespace CompanyApp
{
    public class Program
    {
        public static void Main(string[] args)
        {
            CreateHostBuilder(args).Build().Run();
        }

        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureLogging((hostingContext, logging) =>
                {
                    logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging"));
                    logging.AddConsole();
                    logging.AddDebug();
                    logging.AddEventSourceLogger();
                })
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();
                });
    }
}

3. Журнал по умолчанию не отображает конфиденциальные данные, поэтому вы не можете видеть параметры выполнения оператора SQL. Если вы хотите увидеть параметры, вам нужно включить отображение конфиденциальных данных в методе ConfigureServices файла Startup.cs:

public void ConfigureServices(IServiceCollection services)
{
    services.AddControllersWithViews();

    services.AddDbContext<CompanyDbContext>(options => {
        //启用显示敏感数据
        options.EnableSensitiveDataLogging(true);
        options.UseSqlServer(Configuration.GetConnectionString("CompanyDbContext"));
    }); 
}

4. Настройте параметры журнала appsettings.json:

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information",
      "Microsoft.EntityFrameworkCore.Database.Command": "Information"
    }
  },
  "AllowedHosts": "*",
  "ConnectionStrings": {
    "CompanyDbContext": "Server=(localdb)\\mssqllocaldb;Database=CompanyDb;Trusted_Connection=True;MultipleActiveResultSets=true"
  }
}
Опубликовано 177 оригинальных статей · 61 похвал · 170 000 просмотров

рекомендация

отblog.csdn.net/xingkongtianyuzhao/article/details/104304788
рекомендация