码迷,mamicode.com
首页 > 数据库 > 详细

.net core 3.0 利用日志查看ef生成的SQL语句

时间:2020-07-12 22:22:44      阅读:91      评论:0      收藏:0      [点我收藏+]

标签:prot   contex   实现   level   form   image   href   blog   gif   

转自: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语句

 技术图片

 

.net core 3.0 利用日志查看ef生成的SQL语句

标签:prot   contex   实现   level   form   image   href   blog   gif   

原文地址:https://www.cnblogs.com/fightingstepup/p/13289977.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!