我对一些奇怪的情况感到震惊(可能只对我来说很奇怪!)。
我有一些像StudentMerit
. 它有列StudentId
, Marks
。还有一个名为StudentDetails
,StudentId
的表StudentName
。
我需要像这样查询它
select a.StudentId, a.Marks, b.StudentName
from StudentMerit a, StudentDetails b
where a.StudentId = b.StudentId
order by StudentName ASC, Marks DESC
我现在使用 Telerik ORM 进行数据访问,我需要将查询的输出作为类类型StudentMerit
。所以我不能像这样直接将上述查询转换为 Linq:
var query = context.StudentMerit
.SelectMany(
r => context.StudentDetails
.Where(rp => rp.StudentId==.StudentId)
.DefaultIfEmpty(),
(r,rp) => new
{
r.StudentId,
r.Marks,
rp.StudentName
})
.OrderBy(c=>c.StudentName)
.ThenByDescending(c=> c.Marks);
因为它将输出作为匿名类型返回。我不需要StudentName
在选择查询中,但需要它对查询进行排序。
有没有什么办法可以在StudentName
不加入表格的情况下直接排序?
请帮帮我。