分享好友 最新资讯首页 最新资讯分类 切换频道
猎头公司网站素材/seo外链论坛
2024-12-27 23:23

(给DotNet加星标,提升.Net技能)

转自:LamondLucnblogs.com/lwqlun/p/13551149.html

前言

笔者最近在开发和维护一个.NET Core项目,其中使用几个非常有意思的.NET Core相关的扩展,在此总结整理一下。

EF Core性能调优

如果你的项目中使用了EF Core, 且正在处于性能调优阶段,那么了解EF Core生成的SQL语句是非常关键的。那么除了使用第三方工具,如何查看EF Core生成的SQL语句呢?这里笔者将给出一个基于.NET Core内置日志组件的实现方式。

创建一个实例项目

我们首先建一个控制台程序,在主程序中我们编写了一个最简单的EF查询。

这里为了演示,我们提前创建了一个MySql数据库,并在项目中创建了一个对应的EF Core上下文。当前上下文中只有一个User实体,该实体只有2个属性UserId和UserName。

如何生成的SQL语句输出到控制台

.NET Core中提供了非常完善的日志接口。

这里为了和.NET Core的日志接口集成,我们需要实现2个接口,一个是日志提供器接口ILoggerProvider, 一个是日志接口ILogger

EFLoggerProvider的代码非常的简单,就是直接返回一个我们后续创建的EFLogger对象。

这里我们主要使用了内置的formatter格式化了日志信息。

最后我们还需要将自定义的日志处理类和EF Core集成起来。这里我们需要复写上下文类的OnConfiguring方法。在其中通过UseLoggerFactory方法,将我们自定义的日志处理类和EF Core的日志系统关联起来。

下面我们启动项目,看一下效果。这里日志信息正确的显示出来了。

PS: 如果项目中使用了通用主机或者ASP.NET Core, 你也可以在服务配置部分,通过DbContextOptions参数配置。

如何去除无关日志

在前面的步骤中,我们成功的输出了查询语句,但是有一个问题是我们只想查看输出的SQL语句,其他的信息我们都不想要,那么能不能去除掉这些无关日志呢?答案是肯定的。

我们可以在Log方法中,通过分类名称,只输出Microsoft.EntityFrameworkCore.Database.Command分类下的日志,该日志即生成的SQL语句部分。

这里我们也做了一些其他的操作,通过修改控制台输出文本的颜色,高亮了生成的SQL语句。重新启动项目之后,效果如下。

如何显示敏感数据

这里看似我们已经完成了EF Core的语句输出,但是在实际使用中,你还会遇到另外一个问题。

下面我们修改一下我们的主程序,我们尝试插入一条User信息。

重新运行程序,你会得到一下结果。

这里你可能会问为什么不显示@p0, @p1参数的值。这里是原因是为了保护敏感数据,EF Core默认关闭的敏感数据的显示配置,如果你想要查看敏感数据,你需要通过DbContextOptionsBuilder对象的EnableSensitiveDataLogging方法修改敏感数据日志配置。

重新启动项目之后,你就能看到@p0, @p1参数的值了。

- EOF -

推荐阅读  点击标题可跳转.NET数据库事务的各种玩法进化理解C#中的ConfigureAwait.NET Core 3.1 + EF Core + LayUI 管理系统

看完本文有收获?请转发分享给更多人

关注「DotNet」加星标,提升.Net技能 

最新文章
有点料·上手|马斯克旗下 X 的 Grok AI 助理上线免费版,我们动手试
文 |动点科技作者|Steven Lee排版|恩惠本文预计阅读时长4分钟前身为 Twitter 的 X,最近上线了旗下 Grok AI 聊天机器人免费版
短链接生成草料,让你轻松分享!
在互联网上,为了便捷地分享内容,短链接已成为共识。短链接不但能够减少字符数,还可以美化链接,提升用户体验。而短链接生成草
金乡县东城医院密集架采购项目竞争性磋商公告
项目编号:JXZH-2024-S0078项目名称:金乡县东城医院密集架采购项目采购方式:竞争性磋商项目预算:260000.00元(大写:贰拾陆万
直播平台排名大揭秘:哪些汉字在用户搜索中独占鳌头
随着互联网的快速发展,直播平台如雨后春笋般涌现,竞争日益激烈。那么,在众多直播平台中,哪些因素能够影响用户的搜索习惯和偏
如何求解两点间的最速降线
两点之间的最短路线不一定是直线。如果将用时最短作为从 A 点到达 B 点的最短路线评判标准,那么在重力作用下,高度不同的两点间
谷歌Android XR系统曝光:全新界面提升XR体验引发热议
近日,谷歌的最新动态引起了科技界的广泛关注——该公司曝光了专为XR(扩展现实)设备开发的Android XR操作系统。这一系统的首次
掌握插外链音乐的秘诀:终极网站外链建设指南
前言音乐对我们生活的影响不可低估。它可以唤起情感,激发灵感,甚至让我们与他人建立联系。在互联网时代,我们可以在网站和社交
电视手机语音输入
在当今数字化信息时代,越来越多的智能设备进入人们的生活,其中电视和手机作为人们日常生活中不可或缺的设备之一,其功能和智能
SysTools Hard Drive Data Viewer Pro破解补丁 v18.1 绿色版 附激活教程
如何免费激活SysTools Hard Drive Data Viewer Pro?SysTools Hard Drive Data Viewer Pro是一款功能强大的硬盘文件查看器,该程
新浪图床外链建设规划
执行方案选择与新浪图床相关或有重合受众群体的高质量网站,例如:* 图像分享平台(如 Pinterest、Imgur)* 设计类论坛(如站酷