Ваша догадка использовать технологии объектно-реляционного отображения (ORM) - хорошая идея;Существуют фреймворки (как вы упомянули), поддерживающие их, которые делают взаимодействие с данными динамическим (скажем, без хранимых процедур, генерация запросов на лету) и нединамическим способом (хранимые процессы и т. д.) простым.
Вы рассмотрели текущую ситуацию с технологиями ORM, здесь приведены некоторые различия между ними.
NHibernate
Проект с открытым исходным кодом, основанный на Java Hibernate проекте.Он очень активен и имеет отличную поддержку для ряда сценариев.
LINQ to SQL
Хотя он официально не мертв, он был опубликован публичнозаявил, что основное внимание в разработке не будет в LINQ-to-SQL.Эти усилия будут направлены на LINQ-to-Entities.Хотя в целом лучше работать с LINQ to Entities (если выбирать между этим и тем), существуют проблемы;генерация моделей не так чиста, как хотелось бы некоторым, модель отображения метаданных, которую они используют, не позволяет легко использовать модели от разных дизайнеров , и другие проблемы, которые NHibernate, вероятно, уже давно преодолел.
LINQ to Entities
В настоящее время предпочтительный метод доступа к данным в .NET (о чем свидетельствует не только поддержка дизайнера и интеграция в VS.NET, но в таких средах, как RIA), это то, чему MS будет посвящать энергию при работе с пространством ORM.В настоящее время он проходит вторую крупную итерацию (первую из которых трудно использовать несколько человек), простота использования определенно возросла.
Я также буду искать будущие интеграции с другими технологиями MS..
Независимо от того, все три технологии позволят вам представить ваши хранимые процедуры таким образом, чтобы вам возвращались объектные модели вместо наборов данных, для которых у вас есть анализ / использование поиска строк.
Они также будут обрабатывать случай, когда вам придется передавать данные обратно в базу данных;они просто каждый делают это по-разному.