EF执行SQL时调试断点



当使用SQL Server Profiler跟踪实体框架正在执行的SQL查询时,我看到一些不应该执行的查询,我无法确定代码的哪一部分是原因!

在Visual Studio Professional 2012中,是否有一种方法可以将调试器设置为在执行任何SQL查询时中断,以便我可以查看调用堆栈?

如果您愿意(并且被允许)更改上下文:是。你可以把它放在上下文的构造函数中:

#if DEBUG
    this.Database.Log = s =>
        {
            Debug.WriteLine(s);
        };
#endif

现在,您可以在Debug.WriteLine(s);上放置一个断点,并在它被命中时检查堆栈跟踪。

您可以将断点设为仅查看查询的条件,例如,将s.Contains("[")置于中断条件中。

最新更新