Чем работать с БД кроме Entity FrameWork в ASP.NET MVC?
1) Вкатывайтесь в EF. Оно удачнее, как минимум потому, что: сложные запросы строит за вас; ошибку сразу видно; выплевывает сразу целевой объект (в том числе и связанные - т.н. ленивая загрузка); имеет провайдеры под все мыслимые и немыслимые хранилища, сводя их к единому интерфейсу.   
2) Пишите запросы вручную на EF или на EFCore
Материлы в сети по EF потому что он модный, простой и не требует знаний SQL. Если вы хорошо разбираетесь в архитектуре БД и знаете как писать оптимальные SQL-запросы с использованием индексов и query plan-ов. То советую, как сказал mletov писать через ADO.NET. 
Мой личный подход - вызов хранимых процедур с помощью SQLConnection и Dapper, позволяющий использовать асинхронность(хотя по факту - псевдоасинхронность)