C# 使用Nhibernate调用存储过程--获取以下对象的异常无持久化器:

C# 使用Nhibernate调用存储过程--获取以下对象的异常无持久化器:,c#,asp.net,nhibernate,stored-procedures,fluent-nhibernate,C#,Asp.net,Nhibernate,Stored Procedures,Fluent Nhibernate,下面是代码,我是如何调用存储过程的 ISession session = NHibernateHelper.GetCurrentSession(); IQuery q = session.GetNamedQuery("ps_getProgressBarData1"); var t = q.List(); XML映射 <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="Rele

下面是代码,我是如何调用存储过程的

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>
我遇到异常:
没有持久化:ReleaseDAL.ProgressBar,ReleaseDAL,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null

请告诉我这里有什么问题


谢谢

如果没有将映射文件标记为
嵌入式资源
,则可能会出现该错误。请首先检查它。

您没有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>

是的,这是非常好的一点,现在我得到了这个问题------没有持久化:ReleaseDAL.ProgressBar,ReleaseDAL,Version=1.0.0.0,Culture=neutral,PublicKeyToken=nulls请检查网站上的另一个问题,告诉我是否对你有效不,这对我无效。我已经检查过了。我支持你的第一条工作线索,现在我得到了另一个没有持久性的问题:ReleaseDAL.ProgressBar类ProgressBar在名称空间“ReleaseDAL”上?对不起,我没有主意了。也许您可以粘贴ProgressBar映射,并检查此映射文件是否标记为嵌入资源
 <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()