1

입니다 코드, 내가 저장 프로 시저를 호출하고 어떻게자 NHibernate를 사용하여 저장 프로 시저를 호출 -에 대한 persister 예외를 얻기하지 : 여기

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

당신은 embedded resource로 표시 매핑 파일을 가지고 있지 않는 오류를 얻을 수 있습니다. 먼저 확인해주세요.

+0

가 네, 지금은이 문제를 얻고, 아주 좋은 지적이야 -------에 대한 어떠한 persister 없습니다 : ReleaseDAL.ProgressBar, ReleaseDAL, 버전 = 1.0.0.0, Culture = neutral, PublicKeyToken = null –

+0

사이트에서이 다른 질문을 확인하고 나와 작동하는지 알려주십시오. http://stackoverflow.com/questions/57804/nhibernate-mappingexception-no-persister-for –

+0

아니, 이건 나를 위해 작동하지 않습니다. 나는 이미 이것을 확인했다. 나는 becoz 통해 UR 첫 번째 실마리 upvoting 오전, 지금은 다른 문제가 점점에 대한 persister : ReleaseDAL.ProgressBar –

0

당신은 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() 
관련 문제