2011-12-01 160 views
5

映射有關於如何返回值的存儲過程調用映射在這裏一個很好的職位: 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

它現在可見;)(你可以刪除評論) –

+0

@VishalKumar你可以發佈一個例子,你只使用代碼來調用存儲過程嗎? – Rookian

回答

1

說實話,我從來沒有嘗試過,通過你應該看一看的擴展方法AddNamedQuery(..):你從Configuration叫它實例(NHibernate.Cfg名稱空間))。

Some examples關於NHibernate測試項目。

順便說一句,你可以混合使用新的3.2映射代碼和xml。 開始看this question;

+1

謝謝米歇爾,我知道混音部分。事實上,我使用瞭如上所述的經典hbm文件映射,使其通過3.2。但AddNamedQuery(..)實際上是我正在尋找的代碼映射。 – dreamerkumar