Нет ничего плохого в использовании базовых классов ADO.NET.
Возможно, вам просто придется сделать намного больше ручной работы, чем необходимо. Если вы, например, выберите своих 10 лучших клиентов из таблицы с помощью SqlCommand и SqlDataReader, и вам придется итерировать результаты, извлекать каждый отдельный элемент данных (например, номер клиента, имя клиента и т. д.), и вы имеете дело очень тесно со структурами базы данных, например строки и столбцы. Это хорошо для некоторых сценариев, но в других слишком много работы.
То, что дает ORM, - это большая часть этой "тяжелой работы", выполняемой для вас. Вы просто указываете это, чтобы получить список ваших 10 лучших клиентов - как объекты «Клиент». ORM отключится и получит данные (скорее всего, с помощью SqlCommand, SqlDataReader), а затем вытащит кусочки и кусочки и соберет для вас красивые, удобные в использовании объекты «Customer», которые намного проще в использовании, так как они то, с чем имеет дело ваш код - объекты Customer.
Так что, безусловно, нет ничего плохого в использовании ADO.NET, и это хорошо, если вы знаете, как он работает, - но ORM может сэкономить вам много утомительной, повторяющейся и скучной тяжелой работы и позволит вам сосредоточиться на реальных проблемах бизнеса на уровне объекта.
Марк