zoukankan      html  css  js  c++  java
  • EFCore, 输出执行的Sql语句到控制台或者调试窗口

    .net core 已经集成的各种日志功能,使用efcore时,只需要按情况引入相应的包即可,如果你用的是.net core调试,那么可以引入 Microsoft.Extensions.Logging 这类包中的Microsoft.Extensions.Logging.Console 包,若是想在调试窗口看到ef core 执行的语句,可以 换成 Microsoft.Extensions.Logging.Debug,不过一般来讲,因为使用的是.net core,在控制台上输出更有意义,可以在运行时作诊断,要显示ef core执行的语句需要下面的步骤:
    微软的作法:
    1.在dbcontext类上面添加静态方法:

    //输出到debug输出
    public static readonly LoggerFactory LoggerFactory =
           new LoggerFactory(new[] { new DebugLoggerProvider((_, __) => true) });
    // 输出到Console
    public static readonly LoggerFactory LoggerFactory =
           new LoggerFactory(new[] { new ConsoleLoggerProvider((_, __) => true,true) });
    
    

    2.然后再添加类中实例方法重写

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        base.OnConfiguring(optionsBuilder);
        optionsBuilder.UseLoggerFactory(LoggerFactory);
    }
    

    这样就可以在VS的输出窗口里面看到ef core执行时打出的日志了,包括所有执行的sql语句
    如下

    附微软的官方文档 Docs.Microsoft

  • 相关阅读:
    [codevs2800]送外卖
    python JSON处理
    python系统编码格式
    python,django,mysql版本号查询
    django开发总结:
    python之---类和实例
    django Q和F查询
    合并多个python list以及合并多个 django QuerySet 的方法
    python学习之---匿名函数,返回函数,偏函数
    python学习之---生成器
  • 原文地址:https://www.cnblogs.com/hualiu0/p/10826392.html
Copyright © 2011-2022 走看看