Это зависит от архитектуры модели данных. Я могу говорить об эффективности SubSonic, так как я нахожусь в процессе запуска веб-приложения, которое оно поддерживает.
У меня возникли проблемы с JOIN и DISTINCT при использовании SubSonic. Оба раза все, что мне нужно было сделать, это исправить исходный код и восстановить библиотеку DLL. Теперь я совсем не против этого, но вы могли бы быть.
Помимо этих двух проблем, SubSonic очень удобен в использовании. Выбор очень легкий и плавный. Он довольно близко сопоставляется с SQL, почти так же, как и LINQ. Кроме того, SubSonic поставляется с функцией скаффолдинга, которая должна иметь возможность предварительно создать определенные страницы для вас. Я не уверен, насколько это эффективно, так как мне нравится делать это самому.
Еще одна вещь, выбор определенных строк в отличие от * медленный, но только в режиме отладки. Как только вы скомпилируете для релиза, это на самом деле быстрее.
Это мои два цента.