EF执行时调试断点SQL
Debug breakpoint when EF executes SQL
当使用 SQL Server Profiler 跟踪 Entity Framework 正在执行的 SQL 查询时,我看到一些不应该执行的查询,我不能找出代码的哪一部分是原因!
在 Visual Studio Professional 2012 中,有没有办法将调试器设置为在执行任何 SQL 查询时中断,以便我可以看到调用堆栈?
如果您愿意(并被允许)更改上下文:是的。你可以把它放在上下文的构造函数中:
#if DEBUG
this.Database.Log = s =>
{
Debug.WriteLine(s);
};
#endif
现在您可以在 Debug.WriteLine(s);
上放置断点并在命中时检查堆栈跟踪。
您可以使断点有条件地只查看查询,例如通过将 s.Contains("[")
置于中断条件。
当使用 SQL Server Profiler 跟踪 Entity Framework 正在执行的 SQL 查询时,我看到一些不应该执行的查询,我不能找出代码的哪一部分是原因!
在 Visual Studio Professional 2012 中,有没有办法将调试器设置为在执行任何 SQL 查询时中断,以便我可以看到调用堆栈?
如果您愿意(并被允许)更改上下文:是的。你可以把它放在上下文的构造函数中:
#if DEBUG
this.Database.Log = s =>
{
Debug.WriteLine(s);
};
#endif
现在您可以在 Debug.WriteLine(s);
上放置断点并在命中时检查堆栈跟踪。
您可以使断点有条件地只查看查询,例如通过将 s.Contains("[")
置于中断条件。