Вы не можете использовать соединение между источником SQL и локальным источником. Вам нужно будет перенести данные SQL в память, прежде чем вы сможете присоединиться к ним. В этом случае вы на самом деле не выполняете объединение, так как вы берете только элементы из первой коллекции, что вам нужно - это select ... where ... selectid в запросе, который вы можете получить используя метод Contains.
var SE = Shop.Sections.Where( s => obj.SectionObjects
.Select( so => so.SectionId )
.Contains( s.SectionId ))
.ToList();
переводится как
select * from Sections where sectionId in (...)
где значения для предложения in взяты из списка идентификаторов в коллекции локальных объектов.