【发布时间】:2013-07-18 06:22:08
【问题描述】:
我已经阅读了这方面的一些内容,包括How to select only the records with the highest date in LINQ,但我不知道如何将它应用到我稍微复杂的案例中。
我试图获取所有AdjusterProfileStatusItem,但只选择最近的s.statusDate。目前,查询只返回所有记录的所有日期;而我只想要所有记录的最近日期。
(from u in db.Users
join a in db.Adjusters
on u.id equals a.userID
join s in db.AdminAdjusterStatus
on a.id equals s.adjusterID
where u.userType.ToLower() == "adjuster"
&& s.status.ToLower() == "approved"
&& s.statusDate.Max() // causes syntax error...
select new AdjusterProfileStatusItem
{
user = u,
adjuster = a
})
编辑:
我也试过这个,它给了我一个语法错误......
(from u in db.Users
join a in db.Adjusters
on u.id equals a.userID
join s in db.AdminAdjusterStatus
on a.id equals s.adjusterID
where u.userType.ToLower() == "adjuster"
&& s.status.ToLower() == "approved"
group new { u, a, s } by s.adjusterID into x
select new AdjusterProfileStatusItem
{
user = u, // u does not exist in context
adjuster = a, // a does not exist in context
status = x.Max(y => y.statusDate) // anonymous type does not contain definition for 'statusDate'
})
【问题讨论】:
-
你可以使用 order by s.statusDate,并使用 take(n) 取一个两个或任意数量的你想要的。
-
@VladimirBozic 我想采用这种简单的方法,但我认为这只需要 1 条记录,而我想获取所有记录(按日期分组并且只获取最新的
s.statusDate日期) . -
我正在尝试做这样的事情,但我不知道如何应用它stackoverflow.com/questions/15367615/…
标签: c# asp.net-mvc-4 linq-to-sql