Когда используют низкоуровневый ADO.net, а когда Entity Framework?
ИМХО зависит от знаний и построения процесса разработки, плюс от источника данных. Мне лично значительно удобнее ado( на любой сложности запросов и кол-ве данных) , но для большинства "опп" разработчиков это тёмный лес.  Плюс лично мне не нравиться подход code first.
Соглашусь и с OnYourLips и с @nApoBo3
OnYourLips  отметил, что ADO более гибкая, в том плане, что можно написать запрос любой сложности и при этом ни чего кроме базы затрагиваться не будет.
nApoBo3 же отметил тот факт, что это выбор частично зависит от "построения процесса разработки"
Резюмируя, могу дополнить только одно - можно работать и с тем и с другим, но можно всю логику перенести из кода в базы, если быть точнее в функции и процедуры. Их удобно вызывать как из ADO, так и из EF, но в добавок еще и иметь объектное представление базы (entities)