无法调试我的 Linq 查询?



在下面的代码中,当它到达foreach循环时,我运行调试器,直到它突出显示"result",然后它在该点停止运行代码,并且没有抛出异常或任何东西。

我真的不知道为什么它不会给我任何错误信息,当这里有什么问题。

var result = 
    from a in db.table
    select new {table = a};
foreach(var row in result){
    ...
}

在调试Linq查询时,如果不是尝试在调试器中检查IQueryable的内容,而是将其扁平化为列表或数组,通常会使事情变得更容易。

试着把:

var resultList = result.ToList();

. .在您的询问之后;在该行后面直接设置一个断点;然后在调试器中查看resultList的内容

我猜它实际上是遍历列表。如果你有一个大的表或一个复杂的查询,它将需要一段时间(秒)来执行。

是否超出了foreach循环?

也许你正在等待来自数据库的行,并且有锁争用导致应用程序停滞并等待正在访问的表上的锁被释放。这不是错误条件,也不应该抛出异常。例如,是否存在并发写入您试图访问的表或其他已获得排他表锁的访问器,特别是在长事务中?

相关内容

  • 没有找到相关文章

最新更新