Nhibernate无法执行查询-Oracle过程返回refcursor

Nhibernate无法执行查询-Oracle过程返回refcursor,nhibernate,Nhibernate,我的包包含以下过程--> 包体myNewack as 过程显示员工(员工列表输出参考光标) 是 开始 公开招聘 从员工中选择EmpId、FirstName、LastName; 结束; 结束我的新包 我的hbm映射文件包含以下命名查询--> 调用MYNEWPACK.DISPLAYEMPLOYEES() 在.net中,我使用以下代码调用此过程 public IList<NhbHelper.Employee> GetEmployees() { IList<NhbHelper.

我的包包含以下过程-->

包体myNewack as 过程显示员工(员工列表输出参考光标) 是 开始 公开招聘 从员工中选择EmpId、FirstName、LastName; 结束; 结束我的新包

我的hbm映射文件包含以下命名查询-->


调用MYNEWPACK.DISPLAYEMPLOYEES()
在.net中,我使用以下代码调用此过程

public IList<NhbHelper.Employee> GetEmployees()
{
  IList<NhbHelper.Employee> myList;
  ISession session = NHibernateHelper.GetCurrentSession();
  var query= session.GetNamedQuery("mytestsp");
  return query.List<NhbHelper.Employee>();
}
public IList GetEmployees()
{
伊利斯特糜棱岩;
ISession session=NHibernateHelper.GetCurrentSession();
var query=session.GetNamedQuery(“mytestsp”);
返回query.List();
}
每当我执行这段代码时,我都会出错 “无法执行查询 [调用MYNEWPACK.DISPLAYEMPLOYEES()] [SQL:调用MYNEWPACK.DISPLAYEMPLOYEES()]


请帮助我解决此问题,我如何执行返回refcursor的oracle过程?我猜您在hbm映射文件中缺少了返回定义。
应该是这样的:

<sql-query name="mytestsp" callable="true">
    <return class="NhbHelper.Employee, NhbHelper" />
    call MYNEWPACK.DISPLAYEMPLOYEES()
</sql-query>

调用MYNEWPACK.DISPLAYEMPLOYEES()
几个月前,我还在为同样的问题挣扎。我用的是软件包,我想到了这个

如果你想了解更多,你可以读一本对我很有帮助的好书

更新:


你可以混合

嗨,LeftyX:但是我没有使用Fluent NHibernate类,那么还有其他的方法吗know@Tarak:我已经更新了我的答案。您可以混合使用HBM和fluent映射。如果我的答案对你来说足够好,你可以把它标记为“asnwered”,然后进行投票;-)
<sql-query name="mytestsp" callable="true">
    <return class="NhbHelper.Employee, NhbHelper" />
    call MYNEWPACK.DISPLAYEMPLOYEES()
</sql-query>