zoukankan      html  css  js  c++  java
  • .net core 3.0 利用日志查看ef生成的SQL语句

    转自:https://www.cnblogs.com/fancyblogs/p/10535214.html

    EF Core 没有直接提供像 EF6 那样方便的在日志中记录最终生成的 SQL 的功能,可以通过官方提供的日志记录(Microsoft.Extensions.Logging)实现.

    一. 使用 Microsoft.Extensions.Logging.Debug 查看生成的SQL语句

    1. 创建项目, 连接数据库(过程略,参考文档)

    2. 通过nuget添加引用 Microsoft.Extensions.Logging.Debug

    3. 找到EF的DbContext文件,头部引用

    using Microsoft.Extensions.Logging;
    using Microsoft.Extensions.Logging.Debug;

    4. 在DbContext文件里定义一个日志工厂

            public static readonly LoggerFactory MyLoggerFactory = new LoggerFactory(new[] {
                new DebugLoggerProvider()
            });

    5. 在DbContext文件OnConfiguring连接字符前添加日志UseLoggerFactory(MyLoggerFactory)

    复制代码
            protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
            {
                if (!optionsBuilder.IsConfigured)
                {
                    optionsBuilder.UseLoggerFactory(MyLoggerFactory).UseMySql("Server=xxx;User Id=xxx;Password=xxx;Database=bebefocus;Persist Security Info=True;");
                }
            }
    复制代码

    6. 运行查看 在输出面板里查看

    二. 使用 Microsoft.Extensions.Logging.Console 查看生成的SQL语句

    1. 利用nuget添加引用Microsoft.Extensions.Logging.Console

    2. 在DbContext文件里添加引用

    using Microsoft.Extensions.Logging;
    using Microsoft.Extensions.Logging.Console;

    3. 添加日志工厂

            public static readonly LoggerFactory MyLoggerFactory = new LoggerFactory(new[] {
                new ConsoleLoggerProvider((category, level)  => category == DbLoggerCategory.Database.Command.Name&& level == LogLevel.Information, true)
            });

    4. 连接字符串中添加日志

    复制代码
            protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
            {
                if (!optionsBuilder.IsConfigured)
                {
                    optionsBuilder.UseLoggerFactory(MyLoggerFactory).UseMySql("Server=xxx;User Id=xxx;Password=xxx;Database=bebefocus;Persist Security Info=True;");
                }
            }
    复制代码

    5. 查看生成的SQL语句

    控制台dotnet run运行程序,

    执行有查询语句的方法 控制台自动打印出SQL语句

     

  • 相关阅读:
    (5)基于协同过滤推荐算法的图书推荐研究
    (4)推荐系统评测方法和指标分析
    (3)浅析机器学习在推荐系统中的应用
    (2)协同过滤推荐算法概述 摘要
    (1)推荐系统概述 -- 摘要
    30+简约时尚的Macbook贴花
    20+非常棒的Photoshop卡通设计教程
    20+WordPress手机主题和插件【好收藏推荐】
    30+WordPress古典风格的主题-古典却不失时尚
    配置FCKeditor_2.6.3+fckeditor-java-2.4
  • 原文地址:https://www.cnblogs.com/PrintY/p/13289977.html
Copyright © 2011-2022 走看看