2013-03-19 49 views

回答

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>(); 

这工作正常,我不过是不是真的有一个推荐的方式,它总是归结到你感受到什么是适合你的。

+0

感谢您的宝贵答案。在我们的项目中,我们将存储过程映射到类的相同xml文件中,其中包含表格的细节以及它的具体情况。我们没有将新的(我的意思是特殊的)xml文件用于我们项目中存储过程的映射。你能告诉区别映射存储过程在特殊的xml文件中仅用于SP的映射存储过程在正常的xml文件中,这是为表映射创建.......等待你的答案 – Avenger 2013-03-25 11:54:00

+0

没有区别。两者都会一样。它取决于你以及你想如何组织事物。 – Rippo 2013-03-25 15:08:21