Поддерживает ли 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, скорее всего, будет добавлено позже.