基本的に同じことを行う 2 つの SQL ステートメントがあります。つまり、レコード グループの日時フィールドに基づいて、テーブルから最後のレコードを取得します。私はデータ優先の Entity Framework モデルを使用しています。LINQ Lambda 関数を使用して、これらの SQL ステートメントのいずれかをどのように記述しますか?
つまり、
var u = db.AccessCodeUsage.Where(...).GroupBy(...)
それよりも
var u = from a in db.AccessCodeUsage
where ...
group by ...
SQL ステートメント:
SELECT *
FROM AccessCodeUsage a
WHERE NOT EXISTS (SELECT 1
FROM AccessCodeUsage
WHERE LocationId = a.LocationId
AND Timestamp > a.Timestamp)
SELECT a.*
FROM AccessCodeUsage a
WHERE a.Timestamp =
(SELECT MAX(Timestamp)
FROM AccessCodeUsage
WHERE a.LocationId = LocationId
AND a.AccessCode = AccessCode
GROUP By LocationId, AccessCode)