当使用SQL Server Profiler跟踪实体框架正在执行的SQL查询时,我看到一些不应该被执行的查询,我无法确定哪部分代码是原因!
在Visual Studio Professional 2012中,有没有办法在执行任何SQL查询时将调试器设置为中断,所以我可以看到调用堆栈?
答案 0 :(得分:5)
如果您愿意(并允许)更改上下文:是的。你可以把它放在上下文的构造函数中:
#if DEBUG
this.Database.Log = s =>
{
Debug.WriteLine(s);
};
#endif
现在你可以在Debug.WriteLine(s);
上放置一个断点,并在它被击中时检查堆栈跟踪。
您可以使断点有条件地仅查看查询,例如将s.Contains("[")
置于休息状态。