c# - 如何知道在 EF 中执行查询的位置
问题描述
我在 sql profiler 中得到这个查询
SELECT [r].[OfficialFactorId], [r].[AllowCalcTax], [r].[AndicatorNumber], [r].[BasketId], [r].[BookDateTime], [r].[CalculatedWithUserCurrency], [r].[CashPayementPercent], [r].[Comment], [r].[CorporationId], [r].[CreateUserId], [r].[CustomerId], [r].[Date], [r].[EnvoyAddress], [r].[EnvoyEmail], [r].[EnvoyFirstName], [r].[EnvoyFullname], [r].[EnvoyLastName], [r].[EnvoyMobile], [r].[EnvoyNationalCode], [r].[EnvoyPhone], [r].[EnvoyTel], [r].[FactorStatusId], [r].[FactorTypeId], [r].[FirstPaymentPercent], [r].[HasRemaine], [r].[Info], [r].[IsDeleted], [r].[IsLock], [r].[IsManually], [r].[Number], [r].[ParentFactorId], [r].[PassengerFillTypeId], [r].[PaymentTypeId], [r].[PreFactor], [r].[PrePaymentPrice], [r].[PrePaymentType], [r].[Recipted], [r].[ReferenceNumber], [r].[RefundCardNumber], [r].[RegisterDateTime], [r].[RequestUserId], [r].[Revoked], [r].[RowVersion], [r].[SaleCorporationFinancialPeriodId], [r].[SaleMethod], [r].[SettlementTypeId], [r].[SiteAddress], [r].[TourDateId], [r].[TrackingResponsibleUserId], [r].[UserAgentHeader], [r].[UserNote], [r].[order_id]
FROM [ORD].[OfficialFactor] AS [r]
WHERE EXISTS (
SELECT 1
FROM [ORD].[OfficialFactorDetail] AS [x]
WHERE ([x].[IsDeleted] = 0) AND ([r].[OfficialFactorId] = [x].[OfficialFactorId]))
ORDER BY [r].[OfficialFactorId]
此查询生成EF Core
,这非常慢并返回3,000,000
记录。
我想知道查询在项目中执行的位置。项目很大,我找不到查询。
在SQL
探查器中仅显示UserName
和Query
。
有没有办法知道查询在哪里执行?
解决方案
EF 核心的一个非常有用的功能是 .TagWith 方法。
一个例子是:
var peopleList = dbContext.people
.Where(b => b.Name != null)
.TagWith("Getting peoplelist query.")
.ToList();
这将转化为:
-- Getting peoplelist query.
SELECT [b].[PersonId], [b].[Email], [b].[Name], [b].[Title]
FROM [Person] AS [b]
WHERE [b].[Name] IS NOT NULL
它将帮助您跟踪导致问题的查询
推荐阅读
- arrays - 是否可以在 vb.net 中创建一个数组或函数集合?
- javascript - 无法使用 express 和 app.get 访问 /playlists
- vue.js - Vuejs - v-if 不使用“!==”运算符
- javascript - 不能将 onclick() 与嵌套函数一起使用?
- symfony - symfony 错误:DoctrineParamConverter::__construct() 必须是 ManagerRegistry 的实例
- python - How Can I Write a Python Condition in Multiline?
- ios - 更改 CollectionView 中选定单元格的颜色取决于条件
- python - 为什么我的插入排序算法乱序返回
- tensorflow - 操纵矩阵张量流,tf.data.dataset 的问题
- linux - 执行命令时出错:Linux EC2 实例上的 conda activate 命令