NHibernate,如何读取NamedQuery结果元数据?

时间:2010-07-07 13:35:22

标签: nhibernate sql named-query

我的nhibernate映射文件中有一个sql-query define,它调用存储过程来选择一些记录。

 <sql-query name="sp_MYSP">
     exec MYDBSP :param1, :param2, :param3
 </sql-query>

在代码上,我以这种方式调用命名查询:

  IQuery myQuery= Session.GetNamedQuery("sp_MYSP");
  myQuery.SetString("param1", p1);
  myQuery.SetString("param2", p2);
  myQuery.SetString("param3", p3);

获得结果我使用“List”方法

   myQuery.List();

但是以这种方式返回一个没有任何元信息的对象列表......比如columname。我会读取结果像数据表来获取特定属性的值...我该怎么办?

所选记录不代表我的域模式的任何实体,而只代表特定流程使用的数据集合。

2 个答案:

答案 0 :(得分:0)

如果您没有将该查询映射到实体并期望数据表,为什么要使用NHibernate呢?

如果您实际上将其用于其余数据(session.Connection)并从那里创建原始ADO.NET命令,您仍然可以从NHibernate获得连接。

答案 1 :(得分:0)

你是对的。

但是我发现本文的另一个解决方案是在codeprojet上发布的:http://www.codeproject.com/KB/tips/Execute_SQL_Nhibernate.aspx

适合我的情景。