Это из-за последнего выбора, который вы делаете. Также ваш код сильно избыточен. Давайте рассмотрим это по шагам:
var allCategories = from category in context.CmsCategories select category;
Вы можете переписать то же самое более кратко:
var allCategories = context.CmsCategories;
Тогда это неправильно: вы выбираете в запросе коллекций вместо одной коллекции:
var contentCategories = from content in context.CmsContents
where content.ContentId == contentId
select content.CmsCategories;
Правильный способ сделать это:
var contentCategories = (from content in context.CmsContents
where content.ContentId == contentId
select content).First().CmsCategories;
Что, опять же, избыточно и может быть написано лучше:
var contentCategories = context.CmsContents.First(c => c.ContentId == contentId).CmsCategories;
Последнее утверждение верно.