Разве вы не хотите включать только людей, у которых есть адреса?в противном случае, как можно сделать заказ?
что-то вроде этого непроверенного кода:
ctx.People
.Where(p=>p.Addresses.Any())
.OrderBy(p => p.Addresses
.OrderBy(a => a.Rank)
.First().City);
РЕДАКТИРОВАТЬ
Я выйду из своегоЯ уверен, что здесь глубина linq (я не использовал union до того, как угадал из документов), но если вы хотите, чтобы люди без адреса также указывали, не нужно что-то вроде этого:
ctx.People
.Where(p=>p.Addresses.Any())
.OrderBy(p => p.Addresses
.OrderBy(a => a.Rank)
.First().City)
.Union(
ctx.People
.Where(p=>p.Addresses.Any()==false));