How to make this expression using the methods of exptension, but (!) not using anonymous types?
from p in posts
join u in context.oxite_Users on p.CreatorUserID equals u.UserID
join pa in context.oxite_PostAreaRelationships on p.PostID equals pa.PostID
join a in context.oxite_Areas on pa.AreaID equals a.AreaID
let c = getCommentsQuery(p.PostID)
let t = getTagsQuery(p.PostID)
let tb = getTrackbacksQuery(p.PostID)
let f = getFilesQuery(p.PostID)
where p.State != (byte)EntityState.Removed
orderby p.PublishedDate descending
select new Post
{ area = a, comments = c } e.t.c.