如何显示Linq-To-SQL查询的SQL语句?

时间:2014-10-08 15:48:25

标签: c# sql-server performance linq linq-to-sql

我正在尝试检索具有特定日期的最早的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,因为这会延迟应用程序启动过程。

2 个答案:

答案 0 :(得分:2)

抓取查询,在调试器中停止它。你应该能够在查询对象上用鼠标看到它。

我认为你的问题是敏。你在SQL中得到LINQ中的内容,这不是我在SQL中所做的。

我会使用一个命令和一个前1 - 它转换为LINQ中的First()。

答案 1 :(得分:0)