怎么看EFcore生成的sql呢?其实很简单,不用SQL Server Profiler,很麻烦而且只能看sqlserver的,我们可以通过官方提供的日志记录(Microsoft.Extensions.Logging)实现.

 使用 Microsoft.Extensions.Logging.Debug 查看生成的SQL语句
 1.先去下载NuGetMicrosoft.Extensions.Logging.Debug包。

2.在Context类引入命名空间

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

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

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

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

      protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            if (!optionsBuilder.IsConfigured)
            {

                optionsBuilder.UseLoggerFactory(MyLoggerFactory).UseMySql("database=student;data source=43.138.224.67;user id=root;password=ww623025;sslmode=none", Microsoft.EntityFrameworkCore.ServerVersion.Parse("5.7.39-mysql"));
            }
        }

5.总结基本就三步 

6. 执行一个插入

 

可以在控制台看到生成的sql语句 

另外还有一种方式使用 Microsoft.Extensions.Logging.Console ,使用方法和本文章说的差不多,大家可以去试试

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐