背景

在使用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()

var MySqlContext = new MySqlContext();
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代码:

var MySqlContext = new MySqlContext();var unevaluated = 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 (var x in unevaluated)
{Console.WriteLine(x);
}

运行结果

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

相关文章:

  • 全球首发免费的MySql for Entity Framework Core

  • .NET Core 使用Dapper 操作MySQL

  • 在.NET Core中使用MySQL5.7的JSON类型字段

  • 全文索引 - Pomelo.EFCore.MySql

  • Entity Framework Core 生成跟踪列

  • 在Apworks数据服务中使用基于Entity Framework Core的仓储(Repository)实现

  • Entity Framework Core的贴心:优雅处理带默认值的数据库字段

  • Entity Framework Core 实现MySQL 的TimeStamp/RowVersion 并发控制

  • Entity Framework Core 软删除与查询过滤器

  • Entity Framework Core 命名约定

  • 全文索引 - Pomelo.EFCore.MySql

  • Entity Framework Core 批处理语句

原文地址:http://www.1234.sh/post/full-text-index-in-pomelo-efcore-mysql


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

EF Core 插件 —— ToSql相关推荐

  1. ef mysql 插件_EF Core 插件 —— ToSql

    原标题:EF Core 插件 -- ToSql 背景 在使用Entity Framework Core进行开发时,若不使用Logger很难查看到一个查询的SQL语句,同时也有些开发者因为不了解EF C ...

  2. 教你10分钟对接人大金仓EF Core 6.x

    [导读]目前.NET Core中据我了解到除了官方的EF Core外,还用的比较多的ORM框架(恕我孤陋寡闻哈,可能还有别的)有FreeSql.SqlSugar(排名不分先后). FreeSql和Sq ...

  3. 查缺补漏系统学习 EF Core 6 - 批量操作

    推荐关注「码侠江湖」加星标,时刻不忘江湖事 这是 EF Core 系列的第七篇文章,上一篇文章讲述了 EF Core 中的实体数据修改. 这篇文章讲一讲 EF Core 如何进行批量操作. 在众多的 ...

  4. 张高兴的 Entity Framework Core 即学即用:(一)创建第一个 EF Core 应用

    写在前面 Entity Framework Core (EF Core) 是 .NET 平台流行的对象关系映射(ORM)框架.虽然 .NET 平台中 ORM 框架有很多,比如 Dapper.NHibe ...

  5. asp.net mysql 创建变_[ASP.net教程]EF Core使用CodeFirst在MySql中创建新数据库以及已有的Mysql数据库如何使用DB First生成域模型...

    [ASP.net教程]EF Core使用CodeFirst在MySql中创建新数据库以及已有的Mysql数据库如何使用DB First生成域模型 0 2018-06-30 07:00:08 官方教程: ...

  6. ef core mysql 字符集,EF Core 基础知识

    数据库连接字符串 在 ASP.NET Core 添加配置片段: { "ConnectionStrings": { "BloggingDatabase": &qu ...

  7. ef mysql 事务_事务 - EF Core | Microsoft Docs

    使用事务Using Transactions 9/26/2020 本文内容 事务允许以原子方式处理多个数据库操作.Transactions allow several database operati ...

  8. mysql .net core_MySQL官方.NET Core驱动已出,支持EF Core

    千呼万唤始出来MySQL官方.NET Core驱动已出,支持EF Core. 昨天MySQL官方已经发布了.NET Core 驱动,目前还是预览版,不过功能已经可用. NuGet 地址:https:/ ...

  9. The EF Core tools version '2.1.1-rtm-30846' is older than that of the runtime '2.1.3-rtm-32065'. ...

    The EF Core tools version '2.1.1-rtm-30846' is older than that of the runtime '2.1.3-rtm-32065'. Upd ...

最新文章

  1. AndroidSDK下载以及配置
  2. 驱动列举进程输出到应用层
  3. CG笔记之一——透视投影
  4. 【2016年第6期】产业生态的4个特征
  5. oracle 多版本机制,关于oracle多版本机制副作用的问题-Oracle
  6. studioone机架效果模板_studioone3机架效果包
  7. 分库分表学习总结(1)——数据库中间件MyCat学习总结之MyCat入门简介
  8. Beyond Compare和UltraCompare有什么不一样
  9. 惠普m227fdw引擎通信错误_惠普m227fdw/m132nw提示耗材余量错误解决方案
  10. maven中filtering的使用
  11. “Entity Data Modle Designer 无法显示”的问题
  12. python爬取小说并下载_python3爬取小说存为文本实现小说下载
  13. 志当存高远,而唯有努力才能抵达成功彼岸
  14. 计算x的n次方(用函数)
  15. css 选取第一个标签元素
  16. 推荐你一款国产的倾斜摄影实景三维模型浏览器
  17. 【Git】如何修改本地仓库的用户名和邮箱
  18. 在线等 急!!!!!
  19. 中华英才网张建国:规划人生三级跳(转)
  20. 别样肉客与星巴克继续合作 在内地推出别样牛肉™烧烤风味三明治

热门文章

  1. nodejs即时聊天
  2. 《超越需求:敏捷思维模式下的分析》—第1章 1.1节简介
  3. Linux挂载命令mount详解
  4. 看懂通信协议:自定义通信协议设计之TLV编码应用
  5. cacti+nagios 整合遇到的问题
  6. Relaltek声卡在UBUNTU下没有声音的解决方法。
  7. 如何在 ASP.NET Core 中为同一接口配置不同的实现
  8. NoSQL 是否可以用来做日志中心 ?
  9. .NET 6 数组拷贝性能对比
  10. ASP.Net Core Web API 如何返回 File。