我是 C# 和 LINQ 的新手,但后者非常酷。除了我无法弄清楚这里发生了什么:
我有以下代码,它按预期运行;它排序并选择前 100 条记录:
IEnumerable<workerLog> query =
(from record in _gzClasses.workerLogs
orderby record.workerID, record.timeStamp ascending
select record).Take(100);
foreach(var record in query)
{
Console.WriteLine(record.timeInSession.ToString());
}
但是当我执行以下操作时,会打印相同的行,但是程序会挂起一点,并抛出 SQLException 说服务器超时。
IEnumerable<workerLog> query =
from record in _gzClasses.workerLogs
orderby record.workerID, record.timeStamp ascending
select record;
foreach(var record in query.Take(100))
{
Console.WriteLine(record.timeInSession.ToString());
}
这里有什么不同?它与执行 LINQ 查询的方式有关吗?来自 Java 世界,这没有任何意义。