EF Core查询标签TagWith

概述

在使用EF Core的时候,有时候我们需要追踪它生成的sql语句,那么方法那么多,我们怎么知道对应的sql语句是在代码哪里呢,这时候就需要一个备注,

TagWith()能够帮助我们生成对应的注释信息。查询标记有助于将代码中的LINQ查询与日志中捕获的生成的SQL查询相关联。您使用新TagWith()方法注释LINQ查询:EF Core 2.2+中的TagWith是一项出色的功能,可以跟踪查询存储区中的查询,但您必须记住将其添加到所有查询中。

实现方法

var myLocation = new Point(1, 2);
var nearestPeople = (from f in context.People.TagWith("This is my spatial query!")orderby f.Location.Distance(myLocation) descendingselect f).Take(5).ToList();

此LINQ查询被转换为以下SQL语句:

-- This is my spatial query!SELECT TOP(@__p_1) [p].[Id], [p].[Location]
FROM [People] AS [p]
ORDER BY [p].[Location].STDistance(@__myLocation_0) DESC

可以TagWith()在同一查询上多次调用。查询标签是累积的。例如,给定以下方法:

private static IQueryable<Person> GetNearestPeople(SpatialContext context, Point myLocation)=> from f in context.People.TagWith("GetNearestPeople")orderby f.Location.Distance(myLocation) descendingselect f;private static IQueryable<T> Limit<T>(IQueryable<T> source, int limit) => source.TagWith("Limit").Take(limit);

以下查询:

var results = Limit(GetNearestPeople(context, new Point(1, 2)), 25).ToList();

转换为:

-- GetNearestPeople-- LimitSELECT TOP(@__p_1) [p].[Id], [p].[Location]
FROM [People] AS [p]
ORDER BY [p].[Location].STDistance(@__myLocation_0) DESC

也可以使用多行字符串作为查询标签。例如:

var results = Limit(GetNearestPeople(context, new Point(1, 2)), 25).TagWith(@"This is a multi-line
string").ToList();

产生以下SQL:

-- GetNearestPeople-- Limit-- This is a multi-line
-- stringSELECT TOP(@__p_1) [p].[Id], [p].[Location]
FROM [People] AS [p]
ORDER BY [p].[Location].STDistance(@__myLocation_0) DESC

查询标签不可参数化:EF Core始终将LINQ查询中的查询标签视为包含在生成的SQL中的字符串文字。不允许将查询标记作为参数的已编译查询。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/303589.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

我敢打赌,这世界没有python数据分析解决不了的问题

相信许多做数据的都有这样的经历&#xff1a;你花了大半天整合了一张数据表&#xff0c;却因为其他部门的错误&#xff0c;导致表格结构全错了&#xff01;于是你又要吭哧吭哧重新来过...每次数据都重复洗一遍&#xff0c;还这么慢&#xff0c;要是有一劳永逸的方法就好了。一劳…

mysql 存储二进制数据_为什么在MySQL中存储二进制数据?

Im a little confused - what are the pros of storing binary data in DB? Is it for security reasons, or there are some more complicated motives i dont see?Thanks for your time.解决方案As opposed to what? Putting it in the filesystem?The drawbacks to usin…

福利再度来袭,R语言数据分析书籍值得你拥有

在这个大数据的时代&#xff0c;数据分析和数据挖掘的重要性日益明显&#xff0c;小编也一直有意识地收集相关数据集&#xff0c;经过长时间的积累和沉淀&#xff0c;已经拥有十几本有关用R做数据分析和数据挖掘的书籍&#xff0c;有《统计建模与R软件》&#xff08;含源码&…

在 .NET Core 中使用 ViewConfig 调试配置

介绍.NET Core 中的配置包含了多个配置提供程序&#xff0c;包括了 appsettings.json&#xff0c;环境变量&#xff0c;命令行参数等&#xff0c;还有一些扩展的自定义提供程序&#xff0c;比如说 ApolloConfig&#xff0c;AgileConfig 这些&#xff0c;然后从键值对中读取配置…

3G助推智慧医疗 看病将更加“智能化”

3G首次应用于医疗服务 日前&#xff0c;中国联通陕西公司利用3G通信技术&#xff0c;与西京医院合作推出预约医疗、医疗咨询、远程医疗、移动医疗办公、移动诊疗等服务&#xff0c;以联通惠宾预约医疗平台为 通道&#xff0c;通过会员共享为双方会员实现短信、手机WAP、电话、互…

有趣!机器学习预测《守望先锋》里的赢家

网络游戏及电竞流媒体业务正在崛起为一个巨大的市场。在去年的英雄联盟世界锦标赛中&#xff0c;仅一场半决赛就有高达 1.06 亿人观看&#xff0c;甚至超过了 2018 年“超级碗”的观看人数。另一个成功的例子是 Twitch&#xff0c;目前有数千游戏玩家在上面直播玩游戏&#xff…

C#8.0宝藏好物Async streams

之前写《.NET gRPC 核心功能初体验》&#xff0c;利用gRPC双向流做了一个打乒乓的Demo&#xff0c;存储消息的对象是IAsyncEnumerable<T>&#xff0c;这个异步可枚举泛型接口支撑了gRPC的实时流式通信。本文我将回顾分享foreach/yield return/async await语法糖的本质如何…

连接mysql数据库2013_使用VS2013 + EF6 + .NET4.5 连接Mysql数据库

1、安装插件在使用Visual Studio 2013添加ADO.NET实体数据模型新建连接时&#xff0c;默认是没有Mysql选项的。此时我们需要安装两个东西&#xff1a;1、mysql-for-visualstudio&#xff1a;Mysql的Visual Studio插件&#xff0c;推荐1.2.3版本2、mysql-connector-net&#xff…

C# 合并BitMap图像,生成超大bitmap

使用c#&#xff0c;合并多个bitMap图像当只需要两个图像合并的时候&#xff0c;可以简单的使用gdi&#xff0c;把两个图像画到一个画布上面实现合并bitmap.当需要将许多bitmap合并时&#xff0c;由于bitmap类限制&#xff0c;长度或宽度太大时会报异常&#xff0c;前面这种方法…

重磅来袭,2018 年 6 月编程语言排行榜

TIOBE 编程语言社区最新发布了 2018 年 6 月排行榜&#xff0c;和 5 月榜单相比&#xff0c;前九名没有任何变化&#xff0c;依然是 Java、C、C、Python、C#、Visual Basic .NET、PHP、JavaScript、SQL。5月份第十名的Ruby在这个月下降了一名&#xff0c;而R则上升一名&#xf…

mysql bench linux_MySQL Study之--Linux下安装MySQL workbench工具

系统环境&#xff1a;操作系统&#xff1a; RedHat EL6.4(64)WorkBench&#xff1a; mysql-workbench-community-6.0.9MySQL Workbench是一款专为MySQL设计的ER/数据库建模工具。它是著名的数据库设计工具DBDesigner4的继任者。你可以用MySQL Workbench设计和创建新的数据库图示…

近两个月工作日志

从3月18日到今日&#xff0c;接近两个月的时间&#xff0c;一直在做的一件事&#xff0c;就是为 xx公司开发库存管理系统。最近终于开发完毕&#xff0c;想着坐下来好好总结总结。 XX公司专业生产蕾丝产品&#xff0c;有15年的历史&#xff0c;因业务提升的关系&#xff0c;急需…

.NET6发布了Preview2,这点超越过去10年!

从ASP.NET的性能诟病&#xff0c;到.NET Core的性能持续改进&#xff0c;在每一个.NET Core版本都能看到性能优化提升的介绍。.NET Core3.1在各种性能排行中霸榜&#xff0c;.NET5再度提升了性能&#xff0c;前些天发布的.NET Preview2&#xff0c;通过PGO &#xff08;Profile…

人工智能预测2018年世界杯 | 德国人打破历史将在俄罗斯上取得最后的胜利?

2018年俄罗斯世界杯近在眼前&#xff0c;比赛将于6月14日~7月15日在俄罗斯的各地举行。但世界杯还没开始&#xff0c;人们已经出现了各种各样的“比赛结果预测”。其中不乏有一些专业人士以及原足球选手&#xff0c;也有许多“生物”对此预测。前几年&#xff0c;章鱼哥保罗就准…

Q+开放的互联网:腾讯QQ “亮剑” 开放平台

&#xff08;图一&#xff09; 近日&#xff0c;人民日报的腾讯广告&#xff08;图一&#xff09;&#xff0c;在网民心中引起不小的波动。看着图中憨厚的小企鹅&#xff0c;后面是数以万计的应用软件&#xff0c;给人一种大将领兵征战沙场的感觉。图片左下角是 “Q开放的互联网…

php查询mysql乱码_php 查询mysql乱码怎么办

php查询mysql乱码的解决办法&#xff1a;1、修改PHP页面语言本身的编码类型&#xff1b;2、将MySQL字符集更改为“UTF8”&#xff1b;3、使用ultraplus中的编码转换功能进行转换。php读取mysql中文数据出现乱码的解决方法1.PHP页面语言本身的编码类型不合适&#xff0c;这时候&…

猝不及防,Google成功“造人”令人胆寒!人类迎来史上最惨失业潮…

01猝不及防&#xff01;这次&#xff0c;Google“造人”了&#xff01;5月8号&#xff0c;谷歌召开一年一度的Google I/O大会。谷歌CEO劈柴直接祭出了这次大会的王牌AI&#xff0c;这个智能过人的Al让人看完不禁倒吸一口凉气……相比Apple Siri和Microsoft Cortana只能机械式对…

雷军这个程序员!真的牛逼!

阅读本文大概需要3分钟。这两天忙着给CEO汇报工作以及跟进几个新产品的进展&#xff0c;忙到连新闻都没时间看。今天终于轻松了点&#xff0c;早上起来刷了刷知乎&#xff0c;看见一个让我惊呆了的消息&#xff1a;雷军要造车了&#xff01;雷军宣称亲自带队&#xff0c;初期就…

poj2545

题意&#xff1a;给出三个质数&#xff0c;求这素因子只有这三个质数的数中第k大的。 分析&#xff1a;用一个数列&#xff0c;第一位是1。用三个指针指向三个prime要乘的被乘数&#xff0c;最开始都指向1。每次取乘积最小的加入数组&#xff0c;并把指针后移。加入时要判断是否…

mysql rpm 安装后修改路径_mysql rpm包安装后修改数据目录

mysql rpm包安装后修改数据目录发布时间&#xff1a;2020-06-14 23:24:25来源&#xff1a;51CTO阅读&#xff1a;1160作者&#xff1a;梦在这里mysql rpm包安装后修改数据目录1.停止mysql数据服务/etc/init.d/mysqld stop2.为创建的数据目录指定权限chmod -R 777 /home/mysql/d…