O resultado final ficou assim:
Reparei agora que ele está ordenando pelos itens da lista(ids) e não pela data. =/
publicstatic IQueryable<post> Busca(string tag) {var ids = new List<int>() { 5, 2, 1 };return (from p in DataContext.Db.postsjoin tp in DataContext.Db.tag_postson p.id_post equals tp.id_postjoin t in DataContext.Db.tagson tp.id_tags equals t.id_tagswhere t.nome.Contains(tag) && ids.Contains(p.id_tipo_post)orderby p.data_criado descendingselect p).Distinct(); }