2013-03-19 46 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