【发布时间】:2011-12-11 12:49:03
【问题描述】:
我正在我的 MVC 应用程序中实现一些基本的排名功能, 但是我在执行这个查询时遇到了一些奇怪的错误:
此查询的目的是找到最长的前 10 名骑手 总时间——即每个骑手完成的所有圈数的总和。
var topRiders = from rider in _riderDataProvider.GetAll()
orderby
(from session in rider.Sessions
from lap in session.Laps
select lap.LapTime.TotalSeconds)
.Sum()
descending
select rider;
var result = topRiders.Take(10).ToArray();
但是,执行查询会抛出:
System.Data.SqlClient.SqlException:当子查询不带EXISTS时,选择列表中只能指定一个表达式。
坦率地说,我不知道这个异常意味着什么或如何解决它。 是否存在我遗漏的细微错误,或者我是否超出了 LINQ to SQL 的功能? (如果是这种情况,我可以用 SQL 重写查询,但不希望这样做。)
【问题讨论】:
-
这可能会有所帮助。 stackoverflow.com/questions/820552/…
标签: c# linq linq-to-sql