Ну, если вы хотите избавиться от строчек кода, то вы можете свернуть их в одну, используя второй аргумент (defaultValue), например (могу напутать с async/await):
ICity city = await ctx.City.SingleOrDefaultAsync(x => x.CountryId == country.Id, await ctx.AlternativeCity.SingleOrDefaultAsync(x => x.CountryId == country.Id));
Если сущности имеют общий родительский интерфейс (должны в теории), то желательно использовать его.
Также, есть вероятность, что эта версия будет тяжелее из-за вычисления значения по умолчанию.