Я бы хотел, чтобы NHibernate вызывал хранимую процедуру при вызове ISession.Get для извлечения сущности по ее ключу вместо использования динамического SQL.
Мы использовали NHibernate и позволяли ему генерировать наш SQL для запросов и вставок / обновлений / удалений, но теперь, возможно, придется развернуть наше приложение в среде, которая требует от нас использования хранимых процедур для доступа ко всем базам данных. Мы можем использовать sql-insert, sql-update и sql-delete в наших файлах отображения .hbm.xml для вставок / обновлений / удалений. Наши hql и критерии запросов должны быть заменены вызовами хранимых процедур.
Однако я не выяснил, как заставить NHibernate использовать пользовательскую хранимую процедуру для извлечения сущности по ее ключу. Я все еще хочу иметь возможность вызывать ISession.Get, например:
using (ISession session = MySessionFactory.OpenSession())
{
return session.Get<Customer>(customerId);
}
и также ленивые объекты загрузки, но я хочу, чтобы NHibernate вызывал мою хранимую процедуру "GetCustomerById" вместо генерации динамического SQL.
Можно ли это сделать?
Возможно, NHibernate больше не подходит, учитывая эту новую среду, которую мы должны поддерживать.