Я пытаюсь перевести этот SQL запрос в LINQ:LINQ к SQL с JOIN, GROUP BY, HAVING и MAX
SELECT
T1.FileID,
MAX(T1.Date) AS MaxDate
FROM
T1
JOIN
T2 ON T1.Code = T2.Code
WHERE
T2.Category = 'C100'
GROUP BY
T1.FileID
HAVING
T1.FileID LIKE 'F01%'
я получаю все даты, а не только Макс каждой даты в FILEID с использованием это:
var query =
from f in db.T1
join c in db.T2 on f.Code equals c.Code
group f by new { f.FileID, f.Date, c.Category } into g
where g.Key.FileID.StartsWith("F01") && g.Key.Category.Equals("C100")
select new
{
g.Key.FileID,
MaxDate = g.Max(d=>d.Date)
}
Это кажется более сложным, чем необходимо. Как я могу это исправить?
почему в SQL группировать только от 'FileID' но в LINQ 'f.FileID, f.Date, c.Category'? – Grundy
Поскольку я не знаю, как использовать группу LINQ ... –