У меня есть сохраненный процесс, отображаемый в NHibernate следующим образом:
<sql-query name="HistoricSearch">
<return class="ResultItem">
</return>
exec dbo.SelectHistoricResultItem :StartDate, :EndDate, :ListA, :ListB, :ListC
</sql-query>
Следующий код работает нормально, если каждый список параметров поиска содержит один параметр:
IQuery query = session.GetNamedQuery("HistoricSearch");
query.SetDateTime("StartDate", fromDate);
query.SetDateTime("EndDate", toDate);
query.SetParameterList("ListA", searchOptionA);
query.SetParameterList("ListB", searchOptionB);
query.SetParameterList("ListC", searchOptionC);
List<ResultItem> resultItems = (List<ResultItem>)query.List<ResultItem>();
return resultItems;
но если список содержит несколько значений, я получаю следующую ошибку:
Procedure or function SelectHistoricResultItem has too many arguments specified
В соответствии с описанием метода SetParameterList () он должен «Связать несколько значений с именованным параметром запроса» . Я предполагаю, что проблема в файле сопоставления:
exec dbo.SelectHistoricResultItem :StartDate, :EndDate, :ListA, :ListB, :ListC
но я понятия не имею, как еще структурировать это, чтобы учесть несколько параметров. Может кто-нибудь сказать мне, как это делается?
Спасибо, <3 </p>