【问题标题】:Debug breakpoint when EF executes SQLEF执行SQL时调试断点
【发布时间】:2015-02-25 15:13:53
【问题描述】:
当使用 SQL Server Profiler 跟踪实体框架正在执行的 SQL 查询时,我看到一些不应该执行的查询,我无法确定代码的哪一部分是原因!
在 Visual Studio Professional 2012 中,有没有办法将调试器设置为在执行任何 SQL 查询时中断,以便我可以看到调用堆栈?
【问题讨论】:
标签:
.net
entity-framework
visual-studio-2012
entity-framework-6
【解决方案1】:
如果您愿意(并允许)更改上下文:可以。你可以把它放在上下文的构造函数中:
#if DEBUG
this.Database.Log = s =>
{
Debug.WriteLine(s);
};
#endif
现在您可以在Debug.WriteLine(s); 上设置断点,并在命中时检查堆栈跟踪。
您可以使断点有条件以仅查看查询,例如通过将s.Contains("[") 置于中断条件中。