Если вы явно не включаете предложение order-by, у вас действительно есть только set - любое упорядочивание чисто удобное и обычно оказывается в кластерном индексе- но IIRC это не гарантируется (и я полагаю, что такие вещи, как сервер, выбравший параллелизм, будут выбрасывать это)
Включить упорядочение;либо на БД, либо на клиенте.В качестве альтернативы, выбросьте результаты в словарь:
var dict = Current.DB.Posts.Where(p => ordered.Contains(p.Id))
.ToDictionary(p => p.Id);
, затем вы можете извлечь тот, который вам нужен, игнорируя порядок.