Этот вопрос похож на этот:
LINQ to SQL: GroupBy () и Max (), чтобы получить объект с самой поздней датой
Но у меня есть таблица, из которой я хочу вернуть много строк. Его первичный ключ используется как внешний ключ во второй таблице. Для каждой строки, возвращаемой из первой строки, я также хочу вернуть (в том же наборе результатов) самую последнюю (в данном случае упорядоченную по полю даты и времени) 1 строку.
Как это будет построено в LINQ с использованием C #?
Лучшее, что у меня есть:
var instances = from i in ContextDB.Instances
join p in ContextDB.Points on i.InstanceID equals p.InstanceID
where categoryIDs.Contains(j.CategoryID)
group p by p.InstanceID into latestPoint
select new latestPoint.OrderBy(i => i.Instance.Title).FirstOrDefault();
Но это явно неправильно. Хотя я думаю, что правильно понимаю group
, я не думаю, что правильно понимаю into
.
[РЕДАКТИРОВАТЬ] Чтобы избежать путаницы, я думаю, что этот вопрос можно сформулировать как «Как сделать строки из одной таблицы вместе с последней 1 строкой для каждой из другой таблицы?»