跟踪从实体框架代码调用的查询
Posted
技术标签:
【中文标题】跟踪从实体框架代码调用的查询【英文标题】:Track down queries called from Entity Framework code 【发布时间】:2021-05-07 15:55:08 【问题描述】:实体框架中是否有办法跟踪或确定在代码中从何处调用临时查询?此查询来自 SQL Server 中的 Activity Monitor,但是我不知道它在我们的代码中来自哪里,我们有大量的调用。有没有办法轻松解决这个问题?
SELECT
CASE WHEN ( EXISTS (SELECT
1 AS [C1]
FROM [Test].[DT] AS [Extent1]
WHERE EXISTS (SELECT
1 AS [C1]
FROM [Test].[D] AS [Extent2]
INNER JOIN [Test].[ME] AS [Extent3] ON [Extent2].[EId] = [Extent3].[EId]
WHERE ([Extent1].[DId] = [Extent2].[Id]) AND ([Extent3].[MId] = @p__linq__0)
)
)) THEN cast(1 as bit) ELSE cast(0 as bit) END AS [C1]
FROM ( SELECT 1 AS X ) AS [SingleRowTable1]
【问题讨论】:
***.com/q/41414784/861716 【参考方案1】:对于 EF Core,这是添加 Query Tags 功能的原因,或者您始终可以使用 logging。对于 EF6,您可以使用 logging and interception。
【讨论】:
很棒,但这不是 EF 核心以上是关于跟踪从实体框架代码调用的查询的主要内容,如果未能解决你的问题,请参考以下文章