ОБНОВЛЕНИЕ: теперь это решено, см. Ответ ниже.
У меня возникли некоторые проблемы при попытке найти правильный способ написания NHibernateФайл отображения (.hbm.xml) для хранимой процедуры MSSQL.
Хранимая процедура принимает два параметра и возвращает набор результатов из одной строки, содержащий несколько столбцов с целочисленными значениями.
Мой файл отображениявыглядит следующим образом:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="TestApp.DataAccess"
namespace="TestApp.DataAccess.Models">
<class name="MonthlyInstructionCount" lazy="true">
<id name="Id" column="Month">
<generator class="native" />
</id>
<property name="Month" />
<property name="MapRequests" />
<property name="Instructions" />
<property name="DrainsLookSee" />
<property name="DrainsFullCctv" />
<property name="Soils" />
<property name="Roots"/>
<property name="Arb" />
<loader query-ref="MI_MonthlyInstructionCount"/>
</class>
<sql-query name="MI_MonthlyInstructionCount">
<return class ="MonthlyInstructionCount">
<return-property name="Month" column="Month" />
<return-property name="MapRequests" column="MapRequests" />
<return-property name="Instructions" column="Instructions" />
<return-property name="DrainsLookSee" column="DrainsLookSee" />
<return-property name="DrainsFullCctv" column="DrainsFullCctv" />
<return-property name="Soils" column="Soils" />
<return-property name="Roots" column="Roots" />
<return-property name="Arb" column="Arb" />
</return>
exec dbo.MI_MonthlyInstructionCount :StartDate :NumberOfMonths
</sql-query>
</hibernate-mapping>
Я также попробовал следующее, как это было предложено кем-то на форуме для решения аналогичной проблемы, с которой сталкивался другой человек в отношении хранимых процедур ...
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="TestApp.DataAccess"
namespace="TestApp.DataAccess.Models">
<sql-query name="MI_MonthlyInstructionCount">
<return class ="MonthlyInstructionCount" />
exec dbo.MI_MonthlyInstructionCount :StartDate :NumberOfMonths
</sql-query>
</hibernate-mapping>
Кажется, ничего из этого не работает ... Я просто получаю следующую ошибку:
Инициализатор типа для 'TestApp.DataAccess.Sql.NHibernateHelper' вызвал исключение.
{«Ошибки в именованных запросах: {MI_MonthlyInstructionCount}»}
Я не вижу, чтобы это была хранимая процедура (хотя из-за ошибки можно предположить, что это ...), так как, кажется, она успешно работает в MSSQLсерверМенеджер.
Любая помощь очень ценится!Ура!