Я бы не стал его использовать, потому что он скрывает происходящее и может оставить соединения с базой данных без надлежащей утилизации.
Объект подключения будет закрыт, когда вы прочитаете последнюю запись, и если вы прекратите чтение до этого, объект подключения не будет удален. Если, например, вы знаете, что у вас всегда есть десять записей в результате, и у вас есть цикл, который читает эти десять записей из перечислителя без выполнения одиннадцатого вызова Read, который читает после последнего элемента, соединение не будет закрыто должным образом. Кроме того, если вы хотите использовать только часть результата, вы не сможете закрыть соединение, не прочитав остальные записи.
Даже встроенные расширения для перечислителей могут вызывать это, даже если вы используете их правильно:
foreach (MyType item in GetMyTypeObjects().Take(10)) {
...
}