Я не слишком большой поклонник прямых сопоставителей сущностей, потому что я все еще думаю, что запросы SQL быстрее и лучше всего оптимизируются, когда пишутся вручную для базы данных и для нее (с использованием правильных объединений, группировок, индексов и т. Д.).
В моем текущем проекте я решил попробовать BLToolkit, и я очень доволен его оберткой вокруг Ado.net и скоростью, поэтому я запрашиваю базу данных и получаю сильные объекты типа C #.Я также написал T4, который генерирует помощники хранимых процедур , поэтому мне не нужно использовать магические строки при вызове хранимых процедур, поэтому все мои вызовы используют строгие типы для параметров.
В основном всемои вызовы CRUD выполняются с помощью хранимых процедур, потому что многие из моих запросов не являются простыми операторами выбора, и особенно мои запросы на создание и обновление также возвращают результаты, которые легко сделать с помощью хранимой процедуры, выполняющей всего один вызов.В любом случае ...
Даунсайд
Самый большой недостаток BLToolkit ( Я бы хотел, чтобы все, кто оценивает BLToolkit, знал, что ) не его возможности или скорость, а его оченьскудная документация, а также поддержка или ее отсутствие.Таким образом, самая большая проблема с этой библиотекой - делать проб и ошибок, чтобы она заработала.Вот почему я также не хочу использовать слишком много разных его частей, потому что чем больше я использую, тем больше проблем мне приходится решать самостоятельно.
Вопрос
Какие альтернативы мнедолжны BLToolkit, которые:
- поддерживают использование хранимых процедур, которые возвращают любые предоставленные мной объекты, которые не обязательно совпадают с таблицами БД
- обеспечивают хорошее отображение объектов из читателя данных в объекты
- поддерживает отношения (все они)
- необязательная (но желательная) поддержка нескольких результатов набора результатов
- не требует специальной настройки (я использую только подключение к данным)строка и ничего больше)
По сути, он должен быть очень легковесным, просто должен иметь простую оболочку Ado.net и объектный сопоставитель.
И самое важное требование: прост в использовании, хорошо поддерживается, и сообщество использует его .