Я проверял это с Oracle. Работает нормально. Потому что там у меня есть Пакет и определены тип Ассоциативного массива и Хранимая процедура в теле пакета.
Хотя в SQL Server нет концепции пакетов. Как заставить это работать в SQL Server?
Начало доменного объекта
[Serializable]
public class Employee
{
public virtual int EmployeeId
{
get;
set;
}
public virtual string EmployeePassword
{
get;
set;
}
public virtual string EmployeeName
{
get;
set;
}
public virtual int TeamAssociatedWith
{
get;
set;
}
public virtual string IsCaptain
{
get;
set;
}
public virtual int NumberOfMOM
{
get;
set;
}
public virtual int Balance
{
get;
set;
}
}
Mapping
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="DomainObject.Employee,DomainObject" table="Employee">
<id name="EmployeeId" column="EMP_ID" type="int" unsaved-value="0">
<generator class="native">
</generator>
</id>
<property name="EmployeePassword" column="EMP_PASSWORD" type="string"/>
<property name="EmployeeName" column="EMP_NAME" type="string"/>
<property name="TeamAssociatedWith" column="TEAM_ASSOCIATED_WITH" type="int"/>
<property name="IsCaptain" column="IS_CAPTAIN" type="string"/>
<property name="Balance" column="BALANCE" type="int"/>
<property name="NumberOfMOM" column="NO_OF_MOM" type="int"/>
</class>
</hibernate-mapping>
Хранимая процедура
CREATE PROCEDURE [dbo].[some_sp] @id IntTable READONLY
AS
SELECT EMP_ID,EMP_NAME,EMP_PASSWORD,
TEAM_ASSOCIATED_WITH,IS_CAPTAIN,NO_OF_MOM,BALANCE
FROM employee;
GO
<code>ISQLQuery final = eventhistorysession.CreateSQLQuery("EXEC TestCustom @location = :id");<br>
IQuery result = final.SetStructured("id", dt);<br>
IList finalResult = result.List();<br>