我正在尝试检索具有特定日期的最早的DateTime值。 已经从数据上下文中检索了Holder实例(没有预取),现在我需要搜索IO EntitySet(尚未获取)。
我在每个持有者的foreach循环中执行此操作,因此检索请求的值需要很长时间。索引表没有帮助,所以我想查看SQL语句以优化数据库。
这是需要转换为SQL的代码:
DateTime? entryDateTime = (from io in Holder.IOs
where io.IOStatus == "Entry" &&
io.IODateTime.HasValue &&
io.IODateTime.Value.Date == date.Date
select io.IODateTime).Min();
我不能使用LinqPad,因为linq语句不会直接询问DataContext,而是IOs EntitySet。
此外,如果有人知道如何重写linq语句以加快检索速度,请告诉我。我不想使用LoadOptions,因为这会延迟应用程序启动过程。
答案 0 :(得分:2)
抓取查询,在调试器中停止它。你应该能够在查询对象上用鼠标看到它。
我认为你的问题是敏。你在SQL中得到LINQ中的内容,这不是我在SQL中所做的。
我会使用一个命令和一个前1 - 它转换为LINQ中的First()。
答案 1 :(得分:0)