任何人都可以告诉在Nhibernate中完全映射存储过程的位置。
在类hbm.xml文件或新声明的文件(hbm.xml)中,特别是对于存储过程???
你能说出理由吗?
答案 0 :(得分:4)
我创建了一个包含所有存储过程调用的XML文件,例如
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<sql-query name="SummaryReport">
exec getSummaryReport :productId
</sql-query>
<sql-query name="FullReport">
exec getFullReport :productId
</sql-query>
</hibernate-mapping>
并将其标记为嵌入式资源。我可以这样称呼SP: -
var results = Session
.GetNamedQuery("SummaryReport")
.SetInt32("productId", productId);
.SetResultTransformer(
new AliasToBeanResultTransformer(typeof(SummaryReport)));
return results.List<SummaryReport>();
这对我来说很好,但确实没有推荐的方式,它始终是你认为适合你的方式。