我想我已经解决了这个问题,但它可能只适用于这个特定的实例,通过在连接之后移动include,查询似乎可以工作:
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});
编辑:我的另一个类似于此的查询也需要外部连接,这会产生一些问题,因为它会影响您连接的内容,这与本例不同,但它仍然是可行的。