Вот запрос, работающий в пределах LinqPad в моей базе данных (не созданDate - это на самом деле ActivationDate, а таблица Post - Nt_Post. Спасибо Rex M за участие в решении: P
var q =
from
post in Nt_Post
join
memberdates in (
from
p_inner in Nt_Post
group
p_inner by p_inner.MemberId into grouped
select new {
MemberId = grouped.Key,
ActivationDate = grouped.Max(m => m.ActivationDate)
})
on
new { post.MemberId, post.ActivationDate }
equals
new { memberdates.MemberId, memberdates.ActivationDate }
orderby post.ActivationDate
select post;
q.Dump();
Сгенерированный sql:
SELECT [t0].[Id], [t0].[Title], [t0].[Teaser], [t0].[Text], [t0].[ActivationDate], [t0].[CreatedDate], [t0].[LastModifiedDate], [t0].[IsActive], [t0].[Permalink], [t0].[MemberId], [t0].[HomePageVisibility], [t0].[Image], [t0].[ImageContentType], [t0].[HasNotifiedRTR]
FROM [nt_Post] AS [t0]
INNER JOIN (
SELECT MAX([t1].[ActivationDate]) AS [value], [t1].[MemberId]
FROM [nt_Post] AS [t1]
GROUP BY [t1].[MemberId]
) AS [t2] ON ([t0].[MemberId] = [t2].[MemberId]) AND ([t0].[ActivationDate] = [t2].[value])
ORDER BY [t0].[ActivationDate]