我已閱讀了其中的一些項目,包括How to select only the records with the highest date in LINQ,但我不知道如何將其應用於稍微複雜一點的案例。LINQ to SQL從對象獲取最新日期
我想獲得所有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)t o你需要兩個或任意數量的人。 –
@VladimirBozic我想採取這種簡單的方法,但我認爲這將只需要1條記錄,而我想採取所有記錄(按日期分組,只採取最新的's.statusDate'日期)。 – user1477388
我想要做這樣的事情,但我不知道如何應用它http://stackoverflow.com/questions/15367615/find-max-and-min-datetime-in-linq-group – user1477388