Как написать сопоставления для хранимой процедуры - PullRequest
5 голосов
/ 01 декабря 2011

Здесь есть отличный пост о том, как отобразить возвращаемые значения для вызова хранимой процедуры: 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>

1 Ответ

1 голос
/ 03 декабря 2011

Если честно, я никогда не пробовал, поэтому вам стоит взглянуть на метод расширения AddNamedQuery(..): вы вызываете его у вас Configuration instance (NHibernate.Cfg namespace)).

Некоторые примеры в тестовом проекте NHibernate.

Кстати, вы можете смешать новый код отображения 3.2 и код xml. Начните смотреть на этот вопрос ;

...