这里有关于如何映射存储过程调用的返回值的优秀帖子: http://elegantcode.com/2008/11/23/populating-entities-from-stored-procedures-with-nhibernate/
此示例中的映射已通过hbm文件完成。
我正在尝试使用最新版本的Nhibernate(3.2),我们可以通过代码进行映射。我真的想找出能够创建如下映射的C#代码:
<sql-query name="GetProductsByCategoryId">
<return class="Product">
<return-property column="ProductID" name="Id" />
<return-property column="ProductName" name="Name" />
<return-property column="SupplierID" name="Supplier" />
<return-property column="CategoryID" name="Category" />
<return-property column="QuantityPerUnit" name="QuantityPerUnit" />
<return-property column="UnitPrice" name="UnitPrice" />
<return-property column="UnitsInStock" name="UnitsInStock" />
<return-property column="UnitsOnOrder" name="UnitsOnOrder" />
<return-property column="ReorderLevel" name="ReorderLevel" />
<return-property column="Discontinued" name="Discontinued" />
</return>
exec dbo.GetProductsByCategoryId :CategoryId
</sql-query>
答案 0 :(得分:1)
说实话,我从未尝试过,你应该看一下扩展方法AddNamedQuery(..)
:你从Configuration
实例(NHibernate.Cfg
命名空间)中调用它。)。
Some examples关于NHibernate测试项目。
顺便说一下,你可以混合新的3.2 map-by-code和xml one。 开始查看this question;