У меня возникла проблема при попытке использовать эти три библиотеки в проекте.Я понимаю, и поэтому вызов хранимых процедур не поддерживается напрямую в Fluent NHibernate согласно их часто задаваемым вопросам.Итак, я определил простой файл hbl.xml с отображением для моей хранимой процедуры:
<?xml version='1.0' encoding='utf-8'?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="My.Data.Mappings" assembly="My.Data.Mappings">
<sql-query name="MyStoredProc" callable="true">
<query-param name="paramA" type="date" />
<query-param name="paramB" type="int" />
<return alias="MyResultClass" class="My.Data.Mappings.MyResultClass, EP.Core.Data.Mappings" />
exec myStoredProc @paramA = :paramA, @paramB = :paramB
</sql-query>
</hibernate-mapping>
Итак, теперь в моем служебном коде, используя библиотеку NCommon, у меня есть:
using (var scope = new UnitOfWorkScope())
{
...
DontKnowWhereToGetSessionManager.Instance.Session.GetNamedQuery("MyStoredProc").List<MyResultClass();
...
}
Таким образом, единственный способ получить DontKnowWhereToGetSessionManager - это заставить Autofac внедрить его в мой сервис.Но это кажется неправильным путем.Есть ли способ получить его из UnitOfWorkScope?Или я должен просто ввести это с Autofac?