0

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'
})
4

1 に答える 1