Поддерживает ли Fluent-NHibernate сопоставление с процедурами?
Мне было интересно, может ли Fluent-NHibernate взаимодействовать с хранимыми процедурами, которые уже существуют, и назначить сопоставление из набора результатов моим собственным объектам домена.
Также есть Fluent-NHibernate, способный напрямую выполнять процедуры без возврата результата?
В основном я рассматривал последствия использования Fluent-NHibernate для замены датированной модели TypedDataSet с помощью управляемого доменом конструкцией, которая может возвращать простые объекты из DAL. Если Fluent-NHibernate не может работать с SP легко, я думаю, что я бы лучше всего имел комбинационный DAL, который будет использовать FNH для простых операций CRUD, оставляя сложные процедуры управляемыми корпоративной библиотекой. Хотя я не думаю, что было бы оптимально иметь 2 конкурирующих DAL, если FNH не сможет хорошо играть с SP. Мне бы хотелось услышать какие-либо другие идеи, чем совместное использование EntLib и FNH.
Ответы
Ответ 1
Стандартная версия Fluent NHibernate (на GitHub) поддерживает вставку, обновление и удаление хранимых процедур.
В конструкторе класса отображения вызовите:
SqlInsert("StoredProcName");
Отказ от ответственности: я еще не тестировал это сам, но это, безусловно, скоро пригодится.
Для получения дополнительной информации см. этот поток в группе Fluent NHibernate Google.
Ответ 2
Чтобы ответить на мой собственный вопрос, ответ - это не что иное, как вы можете написать xml mapppings для NHibernate и объединить их с сопоставлениями Fluent-NHibernate. Отображение SP для FNH, скорее всего, будет добавлено позже.