【发布时间】:2014-10-08 15:48:24
【问题描述】:
我正在尝试检索具有特定日期的最早 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,而是查询 IO EntitySet。
另外,如果有人知道如何重写 linq 语句以加快检索速度,请告诉我。我不想使用 LoadOptions,因为这会延迟应用程序的启动过程。
【问题讨论】:
-
每个持有者的foreach循环?持有者有多少?这将一个一个地加载 IO,因此对于每个持有者,您都会获得一个单独的查询
标签: c# sql-server performance linq linq-to-sql