var modelData = (from data in сontext...
join ...
join ...
where ...
group new {a, b, c } by
new {d, e, f, Date}
into groups
where Выбрать ту группу у которой максимальная дата
select
new T
{
...
}
).ToList();