【发布时间】:2016-05-20 13:32:04
【问题描述】:
我整个上午都在纠结这个问题,不知道如何在 C# 中解决。
我的SQL查询如下:
select a.CourseID,
a.UserID
from audit a
inner join results r on a.UserID = r.UserID
inner join Course c on a.CourseID = c.CourseID
where c.CourseType = 9 and a.Guid = 'A123F123D123AS123123'
and a.Result = 'Passed' and r.Class = 'Maths'
group by a.CourseID, a.UserID
order by a.UserID
返回正是我想要的,但我似乎无法将它翻译成 linq 格式。 (这里使用的格式是我目前工作所需的格式,所以请就这种格式提出建议)
到目前为止,我有以下内容:
var audits = auditRepository.Get(a => a.Course.CourseType == 9 && a.GUID == this.Company.GUID && a.Result == "Passed", null, null,
a => a.Course, a => a.User)
.Join(resultsRepository.Get(r => r.GUID == this.Company.GUID && r.Class == class),
a => a.UserID,
r => r.UserID,
(a, r) => new Audit
{
User = a.User,
Course = a.Course,
Result = a.Result,
Timestamp = a.Timestamp,
AuditID = a.AuditID,
UserID = a.UserID
}
)
.OrderByDescending(o => o.Timestamp)
.GroupBy(u => new { u.User, u.Course })
.Select(grp => grp.ToList())
.ToList();
但是这会返回重复项。
感谢任何建议,谢谢
H
【问题讨论】:
-
试试这个sqltolinq.com