万字长文,带你彻底理解EF Core5的运行机制,让你成为团队中的EF Core专家

217 阅读1分钟

在EF Core 5中,有很多方式可以窥察工作流程中发生的事情,并与该信息进行交互。这些功能点包括日志记录,拦截,事件处理程序和一些超酷的最新出现的调试功能。EF团队甚至从Entity Framework的第一个版本中恢复了一些有用的旧的功能。本博文带你更深入地研究访问EF Core 5的一些元数据和其有趣的使用方式。

1、将EF的ToTraceString移植为EF Core的ToQueryString

这是回忆杀。
在这里插入图片描述

在Entity Framework的第一个迭代版本中,没有内置的日志记录。但是有ObjectQuery.ToTraceString(),这是一种运行时方法,可以动态计算LINQ或Entity SQL查询的SQL,尽管这不是一个很好的日志记录方法,但它毕竟可以输出SQL,即使在今天,也有一些有用的场景。

直到最新版本EF Core 5,该功能才成为EF Core的一部分,并且已重命名为ToQueryString()

如果要查看实体类People的简单查询所生成的SQL,只需将ToQueryString附加到查询中即可。不涉及LINQ执行方法。