Я написал это как LukLed, но чтобы он работал, я использую сущность PK of Post:
var queryResult = (from post in context.Posts
select new
{
post,
post.Author,
post.Tags,
post.Categories,
Count = context.Comments.Where(c => c.Post.Id == post.Id && c.IsPublic == 1).Count()
}).ToList();
Или Post.Id может быть записан как PostId, если открыты ключи forignчерез ассоциацию, которая, я считаю, будет более эффективной.