O NHibernate dá suporte ao uso de Stored Procedures, e apesar de essa ser uma questão até um pouco contraditória para um ORM, é possível adaptar o NHibernate para realizar praticamente todos os comandos SQL através de Stored procedures.

O segredo do uso de Stored Procedures no NHibernate está nos seus arquivos de mapeamento. São neles que podemos configurar o acesso às SPs. Vamos considerar a existência de uma entidade simples, chamada Cidade, contendo apenas as propriedades Id, Nome e UF (Listagem 1).

Listagem 1. Entidade Cidade

public class Cidade
  {
  public virtual int Id { get; set; }
         public virtual string Nome { get; set; }
         public virtual string Uf { get; set; }
  }

Para essa entidade temos um arquivo de mapeamento do NHibernate, também muito simples, que você encontra aqui na Listagem 2.

Listagem 2. Mapeamento da Cidade

<?xml version="1.0" encoding="utf-8" ?>
  <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
         <class name="Cidade">             
  <id name="Id" type="Int32" />    
               <property name="Nome" type="string" length="50" not-null="true" />
               <property name="Uf"   type="string" length="2"  not-null="true" />        
         </class>
  </hibernate-mapping> ... 

Quer ler esse conteúdo completo? Tenha acesso completo