C# 如何显示Linq To SQL查询的SQL语句?
我正在尝试检索具有特定日期的最早日期时间值。 Holder实例已经从数据上下文中检索(没有预取),现在我需要搜索IO EntitySet(尚未检索) 我在foreach循环中为每个持有者执行此操作,因此检索请求的值需要很长时间。为表编制索引没有帮助,因此我想查看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
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,因此对于每个持有者,您将得到一个单独的查询