原标题:EF Core 插件 —— ToSql

背景

在使用Entity Framework Core进行开发时,若不使用Logger很难查看到一个查询的SQL语句,同时也有些开发者因为不了解EF Core哪些Linq可以Translate成SQL,哪些不能而踩坑导致全表查询的,因此开发了Pomelo.EntityFrameworkCore.Extensions.ToSql。开发者们可以使用这个插件来做查询的单元测试,或对EF Core进行查询语句的简单测试。

该项目在GitHub中开源,也欢迎广大开发者加入QQ群522943763提出意见与建议。

使用

首先,在项目中引入Pomelo.EntityFrameworkCore.Extensions.ToSql 2.0.0-preview3-10000。

在欲输出SQL语句的类中引用命名空间Microsoft.EntityFrameworkCore,并在欲输出SQL语句位置添加.ToSql()。

varMySqlContext = newMySqlContext();Console.WriteLine(MySqlContext.Models .Where(x => x.Title.Contains( "Pomelo")) .Where(x => new[] { 2, 3, 5, 7, 11}.Contains(x.Count)) .Where(x => x.Title.Skip( 3).Take( 4).ToString() == "Hello") .ToSql());

在欲输出未能翻译的Linq语句处,执行.ToUnevaluated()即可返回未能成功执行的Linq代码:

varMySqlContext = newMySqlContext(); varunevaluated = MySqlContext.Models .Where(x => x.Title.Contains( "Pomelo")) .Where(x => new[] { 2, 3, 5, 7, 11}.Contains(x.Count)) .Where(x => x.Title.Skip( 3).Take( 4).ToString() == "Hello") .ToUnevaluated(); foreach( varx in unevaluated){ Console.WriteLine(x);}

运行结果

通过调用.ToSql()和.ToUnevaluated()来查看成功与失败的翻译结果,成功的SQL语句和失败的Linq语句在上图结果中一目了然。

ef mysql 插件_EF Core 插件 —— ToSql相关推荐

  1. ef mysql 连接数_EF Core 小坑:DbContextPool 会引起数据库连接池连接耗尽

    原标题:EF Core 小坑:DbContextPool 会引起数据库连接池连接耗尽 DbContextPool 是 ASP.NET Core 2.1 引入的新特性,可以节省创建 DbContext ...

  2. ef mysql db first_Net Core使用EF之DB First

    一.新建一个.net core的MVC项目 新建好项目后,不能像以前一样直接在新建项中添加ef了,需要用命令在添加ef的依赖 二.使用Nuget添加EF的依赖 输入命令:  Install-Packa ...

  3. ef mysql 事务_EF中使用事务 - 李超明的个人空间 - OSCHINA - 中文开源技术交流社区...

    1.EF中的默认的事务 默认情况下,当我们执行一个SaveChanges()方法时就会新建了一个事务,然后将context中的CUD操作都在这个事务中进行.Context中有多个SaveChanges ...

  4. ef mysql 约定_EF 数据库连接约定(Connection String Conventions in Code First)

    一个典型的EF应用大多数情况下是一个DbContext的派生类(derived class)来控制,通常可以使用该派生类调用DbContext的构造函数,来控制以下的东西: (1).上下文如何连接到数 ...

  5. EF Core 插件 —— ToSql

    背景 在使用Entity Framework Core进行开发时,若不使用Logger很难查看到一个查询的SQL语句,同时也有些开发者因为不了解EF Core哪些Linq可以Translate成SQL ...

  6. ef mysql 读写分离_基于 EntityFramework 的数据库主从读写分离服务插件

    基于 EntityFramework 的数据库主从读写分离服务插件 1. 版本信息和源码 1.1版本信息 v1.01 beta(2015-04-07),基于 EF 6.1 开发,支持 EF 6.1 之 ...

  7. mysql plugin 调用_MySQL插件接口的调用方式

    author:sufei 版本:8.0.16 一.简介 首先简单说明一下插件的实现原理 在程序的合适位置(挂钩处)安插相应的函数指针,相应的结构类似:if (fun_ptr != null) fun_ ...

  8. TeamCity : .NET Core 插件

    安装插件 请从 .NET Core Support 下载插件. 以管理员权限进入 Plugins List 页面,点击上方的 "Upload plugin zip": 然后选择上传 ...

  9. MySQL密码策略管理插件validate_password

    小伙伴想精准查找自己想看的MySQL文章?喏 → MySQL江湖路 | 专栏目录   自MySQL5.6版本,引入了新密码校验插件validate_password, 用于管理用户密码长度.强度等,保 ...

最新文章

  1. 麦克纳姆轮——机械部分
  2. Android开源控件ViewPager Indicator的使用方法
  3. python傅里叶变换例子
  4. python 逐行调试工具_在线编译或编辑Python的5个最佳工具
  5. python 实现文本自动翻译功能
  6. inline-block清除空隙2
  7. mysql 1215_mysql执行带外键的sql文件时出现mysql ERROR 1215 (HY000): Cannot add foreign key constraint的解决...
  8. 实现OO的最后一公里
  9. busybox inittab
  10. NSOperation 开发
  11. 个人总结——学期总结
  12. Unity容器中AOP应用示例程序
  13. POJ 2635 The Embarrassed Cryptographer(JAVA)
  14. 电源模块的选择、国内外知名电源模块厂家排名及厂家优势特点汇总
  15. 如何在计算机管理设置开机密码,电脑怎么设置开机密码 开机密码设置步骤
  16. 【plotly+ datashader+mapbox】Uber纽约上车点可视化/解决超大量地理数据可视化
  17. c语言程序实例100题,C 练习实例3
  18. php error_reporting(0);,php error_reporting()函数的用法举例(错误捕捉)
  19. FX5U MODBUS_TCP通讯
  20. Excel阅读器NPOI

热门文章

  1. [C#]使用CMD命令删除文件函数
  2. Elasticsearch的javaAPI之query dsl-queries
  3. 分布式服务框架-原理与实践:14---流量控制-学习笔记(理论篇)
  4. css如何转为html5,HTML与CSS中的3D转换模块
  5. struts2漏洞_十大常见web漏洞——命令执行漏洞
  6. 看看专科程序员与本科程序员之间,到底有什么区别?
  7. 想自学Python却不知该如何入门?这篇文章带你轻松入门Python
  8. php 提交的数据覆盖,如何高效的做数据覆盖操作
  9. boot定时任务开启和关闭 spring_SpringBoot中的定时任务的同步与异步你确定真的知道?...
  10. 硬件基础:电阻作用及产品应用