试试这个,你的映射: -
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<sql-query name="SummaryReport">
exec getSummaryReport :productId
</sql-query>
</hibernate-mapping>
然后用SetResultTransformer ...
var results = Session
.GetNamedQuery("SummaryReport")
.SetInt32("productId", productId);
.SetResultTransformer(new AliasToBeanResultTransformer(typeof(YOURCLASS)));
return results.List<YOURCLASS>();
和YOURCLASS是: -
public class YOURCLASS
{
public virtual int ProductId { get; set; }
public virtual string Column1Returned { get; set; }
public virtual int Column2Returned { get; set; }
etc..
}
请返回肯定什么都从你的SP中定义YOURCLASS
记住你的列名和属性名必须匹配正如他们对CASE
敏感。
谢谢@Rippo,nHibernate映射必须有一个唯一的ID吗? YOURCLASS也必须具有XML映射吗? – 2012-04-10 09:10:57
另外,在nHibernate中,所有的XML * .nbh.xml都必须有相应的物理表吗? – 2012-04-10 09:15:50
如果YOURCLASS具有unqiue标识,但不需要为相应的XML文件创建映射表,则更好。上面的XML文件在我的答案中可能只是被称为namedqueires.hbm.xml – Rippo 2012-04-10 11:52:35