Вам не нужно использовать LINQ, NHibertate или Entity.Многие проекты, работающие на .NET 4.0, все еще используют старомодный ADO.NET.
LINQ to SQL - это не то, чем можно гордиться в вашем приложении.Что касается Entity Framework или NHibernate, то они являются API-интерфейсами ORM и имеют свои весьма выгодные сценарии использования, но также имеют крутую кривую обучения и менее эффективны по сравнению с использованием встроенных запросов или хранимых процедур (но предлагают гораздо лучшую расширяемость и удобство обслуживания).,Еще одним преимуществом использования этих библиотек ORM является то, что вам не нужно писать SQL в большинстве случаев, но это может создать некоторые проблемы, если у вас сложные сценарии. И вы можете использовать Entity Framework с .NET 3.5
Если вы знакомы с SQL и в проекте не выделена большая команда, нет ничего плохого в использовании встроенных запросов или хранимых процедур,Или, если хотите, вы можете использовать что-то вроде MyBatis, которая оцифровывает объекты, используя отражение на основе предоставленного XML-файла.(Я думаю, что у них есть инструменты генерации).
Так что, на мой взгляд, если у вас большая база данных, но вы не ожидаете сложных запросов, стоимость изучения Entity Framework оправдана.Но если у вас небольшая база данных, но со сложными запросами, которые где-то уже написаны, было бы огромной ошибкой использовать Entity или NHibernate ...