Я думаю, что решил эту проблему, но он может работать только для этого конкретного экземпляра. Перемещая включения после объединения, запрос выглядит так:
IEnumerable<CandidateWithBookmarks> results = (
from b in tempBookmarks
join c in _internshipEntities.CandidateSet
.Include("education")
.Include("progress")
.Include("contacts")
.Include("availability")
.Include("hosttypes")
.Include("hostsizes")
.Include("hostcapacities")
.Include("hoststates")
.Include("users")
on b.candidates.ID equals c.ID
select new CandidateWithBookmarks(){CandidateObject = c, BookmarkObject = b});
Редактировать: другой запрос, похожий на этот, требует также внешнего соединения, что создает некоторые проблемы, поскольку в этом случае имеет значение, к чему вы присоединяетесь, в отличие от этого примера, но все же выполнимо.