怎么看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 ,使用方法和本文章说的差不多,大家可以去试试