当我使用实体框架从代码中查询模型时,如何中断调试器?

问题描述 投票:0回答:1

当代码中的任何位置对数据库进行查询时,我需要闯入调试器。是否有一些方法可以在我的

DbContext
中重写,我只调用基类,但我可以在那里放置一个断点。然后我会中断数据库的任何查询?

和/或有其他方法可以实现这一点吗?

强调一下,我需要暂停读取数据。我确实有一个

SaveChangesAsync()
覆盖,我用它来在创建/更新/删除时中断。

entity-framework-core
1个回答
0
投票

您可以使用

IQueryExpressionInterceptor
。创建一些简单的东西并将断点放入拦截器代码中:

public class QueryExpressionFakeInterceptor : IQueryExpressionInterceptor
{
    public static QueryExpressionFakeInterceptor Default = new QueryExpressionFakeInterceptor();

    public Expression QueryCompilationStarting(Expression queryExpression, QueryExpressionEventData eventData)
    {
        return queryExpression; // put breakpoint here
    }
}

并注册拦截器:

builder
    .UseSqlServer(connectionString) // or any other provider
    .AddInterceptors(QueryExpressionFakeInterceptor.Default);  

此解决方案适用于任何查询,

ExecuteUpdate
ExecuteDelete

© www.soinside.com 2019 - 2024. All rights reserved.