我遇到了Linq与实体(使用mysql提供程序)抛出运行时异常的问题。
我有一张结果表。我想生成一个结果列表,按ResultDate
排序并按var query = from res in results
group res by res.resultDate into g
orderby g.Key
select new
{
ResultDate = g.Key,
ResultList = g.ToList()
.OrderByDescending(r => r.Value)
.Take(3)
};
分组,但只返回前三个值的行(每个日期)。我把它写成linq:
.Take(3)
当我包含{{1}}时,查询失败并出现异常(从MySql.Data.dll引发),消息为"子查询返回的行超过1行"。
但是,如果我只是查询结果表并将所有行拉回到列表中,然后对列表运行完全相同的linq,它运行就好了。
linq是否格式错误,因此被强制的sql不正确,或者这可能是mysql linq提供程序中的错误?