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()
。
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相关推荐
- ef mysql 插件_EF Core 插件 —— ToSql
原标题:EF Core 插件 -- ToSql 背景 在使用Entity Framework Core进行开发时,若不使用Logger很难查看到一个查询的SQL语句,同时也有些开发者因为不了解EF C ...
- 教你10分钟对接人大金仓EF Core 6.x
[导读]目前.NET Core中据我了解到除了官方的EF Core外,还用的比较多的ORM框架(恕我孤陋寡闻哈,可能还有别的)有FreeSql.SqlSugar(排名不分先后). FreeSql和Sq ...
- 查缺补漏系统学习 EF Core 6 - 批量操作
推荐关注「码侠江湖」加星标,时刻不忘江湖事 这是 EF Core 系列的第七篇文章,上一篇文章讲述了 EF Core 中的实体数据修改. 这篇文章讲一讲 EF Core 如何进行批量操作. 在众多的 ...
- 张高兴的 Entity Framework Core 即学即用:(一)创建第一个 EF Core 应用
写在前面 Entity Framework Core (EF Core) 是 .NET 平台流行的对象关系映射(ORM)框架.虽然 .NET 平台中 ORM 框架有很多,比如 Dapper.NHibe ...
- 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 官方教程: ...
- ef core mysql 字符集,EF Core 基础知识
数据库连接字符串 在 ASP.NET Core 添加配置片段: { "ConnectionStrings": { "BloggingDatabase": &qu ...
- ef mysql 事务_事务 - EF Core | Microsoft Docs
使用事务Using Transactions 9/26/2020 本文内容 事务允许以原子方式处理多个数据库操作.Transactions allow several database operati ...
- mysql .net core_MySQL官方.NET Core驱动已出,支持EF Core
千呼万唤始出来MySQL官方.NET Core驱动已出,支持EF Core. 昨天MySQL官方已经发布了.NET Core 驱动,目前还是预览版,不过功能已经可用. NuGet 地址:https:/ ...
- 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 ...
最新文章
- AndroidSDK下载以及配置
- 驱动列举进程输出到应用层
- CG笔记之一——透视投影
- 【2016年第6期】产业生态的4个特征
- oracle 多版本机制,关于oracle多版本机制副作用的问题-Oracle
- studioone机架效果模板_studioone3机架效果包
- 分库分表学习总结(1)——数据库中间件MyCat学习总结之MyCat入门简介
- Beyond Compare和UltraCompare有什么不一样
- 惠普m227fdw引擎通信错误_惠普m227fdw/m132nw提示耗材余量错误解决方案
- maven中filtering的使用
- “Entity Data Modle Designer 无法显示”的问题
- python爬取小说并下载_python3爬取小说存为文本实现小说下载
- 志当存高远,而唯有努力才能抵达成功彼岸
- 计算x的n次方(用函数)
- css 选取第一个标签元素
- 推荐你一款国产的倾斜摄影实景三维模型浏览器
- 【Git】如何修改本地仓库的用户名和邮箱
- 在线等 急!!!!!
- 中华英才网张建国:规划人生三级跳(转)
- 别样肉客与星巴克继续合作 在内地推出别样牛肉™烧烤风味三明治