за и против:
LINQ To Entities
Позволяет добавить еще один уровень абстракции (сущности) вместо отображения непосредственно в таблицы (как в LINQ to SQL). Поддержка нескольких поставщиков данных (не только SQL Server). Требуется немного больше времени на обучение, чем LINQ to SQL. Обеспечить единицу работы концепции. Кривая обучения от среднего до высокого.
LINQ to SQL
Позволяет легко отображать таблицы, хранимые процедуры и т. Д. Предоставить концепцию единицы работы. Работать только на сервере SQL Server. Легко реализовать, но требует перестройки dbml при изменении схемы db (односторонняя синхронизация от db к объекту), поэтому немного сложнее в обслуживании. Низкая - средняя кривая обучения. Производительность ... Я думаю, что переполнение стека использует LINQ to SQL. Как вы думаете, это работает? Имейте концепцию единицы работы.
Свободный NHibernate
Не могу комментировать ... ничего не знаю об этом. Если это что-то вроде NHibernate, должно быть достаточно гибким. Вероятно, высокая кривая обучения. Кто-то поправит меня в этом ...
ADO.NET (речь не идет об именованном наборе данных здесь ...)
Должно быть самым быстрым (без абстракции). Гибкий, согни его так, как хочешь. Низкая кривая обучения. Очень просто, все делай сам, подходи. Большую часть времени я иду по этому пути для простого проекта. Может снизить производительность. Вы можете дополнить его генерацией кода, чтобы повысить производительность.
Другие ваши варианты ... Возможно, дозвуковое.