Вызов хранимой процедуры с использованием Nhibernate - получение исключения Нет сохранения для: - PullRequest
1 голос
/ 21 апреля 2010

вот код, как я вызываю хранимую процедуру

ISession session = NHibernateHelper.GetCurrentSession();
        IQuery q = session.GetNamedQuery("ps_getProgressBarData1");
        var t = q.List();

Отображение XML

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"   namespace="ReleaseDAL"  assembly="ReleaseDAL">

 <sql-query name="ps_getProgressBarData1">
    <return alias="ProgressBar" class="ProgressBar">
      <return-property name="Tot" column="Tot"/>
      <return-property name="subtot" column="subtot"/>
    </return>
    exec ps_getProgressBarData1
  </sql-query>
</hibernate-mapping>

Отображение класса

public virtual Int32 Tot {get { return _Tot; } set { _Tot = value; } }
    public virtual Int32 subtot { get { return _subtot; } set { _subtot = value; }}

Получаю исключение: No persister for: ReleaseDAL.ProgressBar, ReleaseDAL, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null

Скажите, пожалуйста, в чем здесь проблема?

Спасибо

Ответы [ 2 ]

2 голосов
/ 21 апреля 2010

Вы можете получить эту ошибку, если у вас нет файла сопоставления, помеченного как embedded resource. Пожалуйста, проверьте это как первое.

0 голосов
/ 13 июля 2011

Ну, у вас нет сопоставления для ProgressBar (я полагаю, что это не сущность), поэтому, вероятно, вы просто хотите получить DTO в результате запроса.

Так что вам просто нужно отобразить результат как скаляры, и в запросе определить преобразователь.

 <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="ReleaseDAL"  assembly="ReleaseDAL">

 <sql-query name="ps_getProgressBarData1">
      <return-scalar column="Tot" Type="xxx"/>
      <return-scalar column="subtot" Type="xxx"/>

    exec ps_getProgressBarData1
  </sql-query>
</hibernate-mapping>

и в методе запроса:

query.SetResultTransformer(Transformers.AliasToBean(typeof(ProgressBar )));
query.List()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...