最近这两天在使用控制台程序学习EFCore,突然想看看生成的SQL语句,所以在网上找到一位大神的分享的方法!

  准备工作:

  1). MySqlEFCore NuGet:   Pomelo.EntityFrameworkCore.MySql     (要2.0.0版本或与下面的NuGet包版本一致)

   2). 查看sql语句的扩展包: Pomelo.EntityFrameworkCore.Extensions.ToSql -Version 2.0.0-rtm-10002  (建议使用install-package命令进行安装,该NuGet包目前最新是2.0.0版本,要和上面个的MySqlEFCore包保持版本号一致)

  代码和结果:

  

var temp = ctx.Students.Join(ctx.Classes, s => s.ClassId, c => c.Id, (s, c) => new
{
sName = s.Name,
cName = c.Name
});
Console.WriteLine(temp.ToSql()); foreach(var t in temp)
{
Console.WriteLine($"{t.sName}:{t.cName}");
}

  

 从上面的代码看出:Console.WriteLine(temp.ToSql()); 中的ToSql()是转换sql语句的重要方法。转到ToSql定义:

  ToSql()是一个参数为IQueryable的扩展方法,返回的string类型的结果,就代表着执行的SQL语句。

  ToUnevaluated()这个方法可以返回翻译Linq语句失败的Sql语句。

原文地址:http://www.1234.sh/post/to-sql-ef-core-addons

Console程序下监控EFCore生成的SQL语句!的更多相关文章

  1. MiniProfiler工具介绍(监控EF生成的SQL语句)--EF,迷你监控器,哈哈哈

    十年河东,十年河西,莫欺少年穷... 今天是抄袭的别人的博客,不过我感觉蛮好,挺有用,特别是老板让你优化EF项目SQL耗时的情况下,你可以采用这种方式来优化你的LINQ. 时间很宝贵,废话还是不多说, ...

  2. mysql中查看ef或efcore生成的sql语句

    http://www.solves.com.cn/it/sjk/MYSQL/2019-07-01/1336.html 涉及命令 1.开启general log模式 MySQL>set globa ...

  3. EFCore常规操作生成的SQL语句一览

    前言 EFCore的性能先不说,便捷性绝对是.Net Core平台下的ORM中最好用的,主要血统还百分百纯正. EFCore说到底还是对数据库进行操作,无论你是写Lamda还是Linq最后总归都是要生 ...

  4. 深入理解 LINQ to SQL 生成的 SQL 语句

    Ø  简介 在 C# 中与数据交互最常用的语句就是 LINQ 了,而 LINQ to SQL 是最直接与数据库打交道的语句,它可以根据 LINQ 语法生成对应的 SQL 语句,在数据库中去执行.本文主 ...

  5. .NET Core实用技巧(一)如何将EF Core生成的SQL语句显示在控制台中

    目录 .NET Core实用技巧(一)如何将EF Core生成的SQL语句显示在控制台中 前言 笔者最近在开发和维护一个.NET Core项目,其中使用几个非常有意思的.NET Core相关的扩展,在 ...

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

    EF Core 没有直接提供像 EF6 那样方便的在日志中记录最终生成的 SQL 的功能,可以通过官方提供的日志记录(Microsoft.Extensions.Logging)实现. 一. 使用 Mi ...

  7. 简单理解ORM,实体类生成查询SQL语句

    目前有很多开源的ORM项目,大多情况下也不需要我们重复去造轮子,我们只需要了解轮子怎么造的,怎么用就可以,下面简单说一下怎么通过实体生成一个SQL语句: 先建立2个Attribute类,TableAt ...

  8. 将EntityFrameworkCore生成的SQL语句输出到控制台,使用hangfire

    将EntityFrameworkCore生成的SQL语句输出到控制台 参考文档如下 EF Core 日志记录要求使用一个或多个日志记录提供程序配置的 ILoggerFactory. 日志记录-EF C ...

  9. 使用EntityFramework6.1的DbCommandInterceptor拦截生成的SQL语句

    开始 EF6.1也出来不少日子了,6.1相比6.0有个很大的特点就是新增了System.Data.Entity.Infrastructure.Interception 命名空间,此命名空间下的对象可以 ...

随机推荐

  1. MySQL Execution Plan--COUNT相关测试

    COUNT全表记录 在MySQL中,相同的SQL不同的存储引擎执行计划不同: 对于MyISAM引擎,由于使用表锁进行并发控制,同一时间点多个并发线程执行相同查询获得的结果相同,且MyISAM存储引擎专 ...

  2. [Linux]F5负载均衡器

    F5负载均衡器是硬件的负载均衡设备 F5配置最简单负载均衡,需要配置的参数有Node(节点).Pool(资源池).和Virtual Server(虚拟服务器),它们的关系是,先配置Node,然后配置V ...

  3. Unity检视面板的继承方法研究 (二)

    之前做了普通对象的可继承的检视面板类, 现在想要实现对Unity自带的检视面板的继承的话, 要怎样写呢? 万变不离其宗,  仍然是围绕UnityEditor.Editor.CreateEditor 这 ...

  4. 【BZOJ3716】[PA2014]Muzeum(贪心+网络流)

    BZOJ 题意: 在二维网格图中有\(n\)个物品,每个物品有价值:但有\(m\)个警卫看管这些物品,每个警卫面朝\(y\)轴负方向,能看到一定角度(假定能够看到无穷远). 现在每个敬畏有一个贿赂价钱 ...

  5. 201871010102-常龙龙《面向对象程序设计(java)》第十七周学习总结

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...

  6. Vue-cli 中安装并使用less

    首先安装vue-cli,网站教程多多,在这不多说.接下来在vue项目目录下,运行 其他扩展使用方法我放个官网链接,大家可以点击查看 npm install less less-loader --sav ...

  7. python27期day04:列表、元组、range、作业题。

    1.for循环套for循环: for i in "abc": for x in "egf: print(x) 结果是:e g f e g f e g f  2.99乘法表 ...

  8. Linux安装Gitlab服务器

    1. 下载GitLab 下载地址:https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/7/gitlab-ce-10.8.2-ce.0.el ...

  9. 7 Exciting Uses of Machine Learning in FinTech

    https://rubygarage.org/blog/machine-learning-in-fintech Machine learning (ML) has moved from the per ...

  10. Cookie 技术

    Cookie 学习: 问题: HTTP 协议是没有记忆功能的,一次请求结束后,相关数据会被销毁.如果第二次的请求需要使用相同的请求数据怎么办呢?难道是让用户再次请求书写吗? 解决:使用 Cookie ...