Question

J'ai jeté un coup d'œil à certains des autres articles sur le sujet, mais la plupart semblent faire face à des sélections. J'ai une procédure stockée qui fait un certain nombre de suppressions et de chèques et prend simplement un INT comme argument et renvoie un peu pour le succès. Je veux déclencher cela de mon code en utilisant le nhibernate courant de l'architecture nette.

Des idées sur la meilleure façon de s'attaquer à ce sujet? Merci

Était-ce utile?

La solution

Vous ne pouvez pas encore cartographier les procédures stockées avec Fluentnhibernate (afaik). Vous avez besoin d'un mappage XML comme celui-ci (SQL-Server):

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="Your.Xml.Mappings.Namespace">
  <sql-query name="DeleteSomeEntity" >
    exec dbo.deleteSomeEntityProc ?
  </sql-query>
</hibernate-mapping>

La valeur de retour sera probablement un ArrayList de object[] Si vous l'appelez avec nhibernate. Remarquez le '?' Argument, qui prendra votre identifiant. Le nom à appeler sera "DeleSomeentity" n'oubliez pas non plus que vous devrez nommer le fichier avec la convention ".hbm.xml" et que vous devez l'inclure en tant que ressource intégrée dans votre projet!

Pour que Fluentnhibernate pour charger le fichier, vous devrez appeler

database = database.Mappings(m => m.HbmMappings.AddFromAssembly(assembly));

sur l'assemblage, appelez le XML lors de l'initialisation de vos mappages.

Lorsque vous avez vraiment besoin du type de retour mappé, vous pouvez inclure un <return> ou <return-property> Déclaration dans la cartographie. Je ne l'ai pas fait, cependant, vous devriez le rechercher dans le manuel de référence Nhibernate.

Hth.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top