我已经搜索了这个没有运气的答案。
我有一个简单的LINQ查询,当我在DEBUG(VS2010)中跳过时,我没有得到错误/异常但是从未到达下一行代码。
这是我的代码:
var model = actionLogRepository.Query()
.Take(30)
.OrderByDescending(x => x.LogDateTime)
.ToList();
return PartialView(model);
DEBUG点击' var模型'代码行和F10步骤结束但返回'未到达行。
谁能告诉我这里发生了什么?
答案 0 :(得分:0)
由于您的LINQ从数据库获取数据,我将首先检查从数据库获取数据所需的时间。可能是Debugger等待数据从数据库返回,并且数据库运行缓慢。
您可以从
获取由EF生成的SQLvar query = ((ObjectQuery)model).ToTraceString();
或设置Context以输出查询
using (var context = new YourDatabaseEntities())
{
context.Database.Log = x => Debug.WriteLine(x);
}
答案 1 :(得分:0)
更新:
已修复,但仍不确定原因。我的actionLogRepository.Query()方法返回一个IEnumerable对象。出于某种原因,这并没有做任何事情。我用以下内容删除了我的存储库调用,现在一切正常。
Error: Could not find or load main class main.scala.TestSpark
模型现在只返回一个通用的ActionLog列表。我想如果我改变了我的Query方法以返回一个通用List,那么它也可以工作。
更新2:
现在改变我的Query方法以返回DbSet而不是类型为ActionLog的IEnumerable,我的原始代码现在可以正常工作。
var model = db.ActionLogs
.Take(30)
.OrderByDescending(x => x.LogDateTime)
.ToList();
谢谢大家的快速回复。