EF执行SQL时调试断点

时间:2015-02-25 15:13:53

标签: .net entity-framework visual-studio-2012 entity-framework-6

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

在Visual Studio Professional 2012中,有没有办法在执行任何SQL查询时将调试器设置为中断,所以我可以看到调用堆栈?

1 个答案:

答案 0 :(得分:5)

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

#if DEBUG

    this.Database.Log = s =>
        {
            Debug.WriteLine(s);
        };

#endif

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

您可以使断点有条件地仅查看查询,例如将s.Contains("[")置于休息状态。