В своем вопросе вы говорите:
ContentPageZone (имеет один контент)
Что означает, что ContentPageZone -> Content равен 1 .. [0,1].
Потом ты скажешь:
... все связанные ContentPageZones, которые активны и имеют хотя бы один активный контент ...
Что означает, что ContentPageZone -> Content равен 1 .. *.
Я предполагаю, что первое верно, но для второго запрос будет другим.
var q = from cp in Context.ContentPages
where cp.ID == someId
select new
{
ID = cp.ID,
Name = cp.Name,
ContentPageZones = from cpz in cp.ContentPageZones
where cpz.Content.IsActive
select new
{
ID = cpz.ID,
// etc.
}
};