SingleOrDefault ищет уникальные записи, он должен делать:
SELECT TOP 2 * FROM TABLE
Он делает это так, что если он найдет 2 результата, он выдаст исключение, поскольку он не является уникальным.
Если вас не волнует нахождение его как уникального объекта, так как у вас есть другие меры для предотвращения дублирования; или просто все равно, вы можете использовать FirstOrDefault следующим образом:
array.FirstOrDefault(x => x.id == someOtherId);
Это выполнит следующее:
SELECT TOP 1 * FROM TABLE
Это ускорит ваши результаты, особенно в больших таблицах, потому что он вернется, как только будет найден первый результат.