Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何显示Linq To SQL查询的SQL语句?_C#_Sql Server_Performance_Linq_Linq To Sql - Fatal编程技术网

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

C# 如何显示Linq To SQL查询的SQL语句?,c#,sql-server,performance,linq,linq-to-sql,C#,Sql Server,Performance,Linq,Linq To Sql,我正在尝试检索具有特定日期的最早日期时间值。 Holder实例已经从数据上下文中检索(没有预取),现在我需要搜索IO EntitySet(尚未检索) 我在foreach循环中为每个持有者执行此操作,因此检索请求的值需要很长时间。为表编制索引没有帮助,因此我想查看SQL语句以优化数据库 这是需要翻译成SQL的代码: DateTime? entryDateTime = (from io in Holder.IOs where io.IOStat

我正在尝试检索具有特定日期的最早日期时间值。 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();
I无法使用LinqPad,因为linq语句不直接查询DataContext,而是查询IOs EntitySet


另外,如果有人知道如何重写linq语句以加快检索速度,请告诉我。我不想使用LoadOptions,因为这会延迟应用程序启动过程。

获取查询,在调试器中停止查询。您应该能够通过鼠标在查询对象上看到它

我认为你的问题是最小值。你在SQL中得到的是你在LINQ中得到的,而这不是我在SQL中要做的


我将使用order by和Top 1,这在LINQ中转换为First()。

您有几个选项。在数据库上使用探查器。 或

或编码:侵入LINQ 2 SQL日志:

您指的是什么查询对象?我会试试你的建议。你可以创造一个。如果没有Min(),则返回的是IQUeryable;)将其放入变量中。
orderby
FirstOrDefault()
的执行时间相同。还有其他建议吗?我在每个持有者的linq object.foreach循环中也找不到SQL语句?有多少人?这将一个接一个地加载IOs,因此对于每个持有者,您将得到一个单独的查询