Question

J'ai une requête SQL définie Perchée sur mon fichier de mappage NHibernate, cet appel d'une procédure stockée pour sélectionner certains enregistrements.

 <sql-query name="sp_MYSP">
     exec MYDBSP :param1, :param2, :param3
 </sql-query>

Le code, j'appelle la requête du nom de cette façon:

  IQuery myQuery= Session.GetNamedQuery("sp_MYSP");
  myQuery.SetString("param1", p1);
  myQuery.SetString("param2", p2);
  myQuery.SetString("param3", p3);

pour obtenir des résultats que j'utilise la méthode « Liste »

   myQuery.List();

mais de cette façon, il retourne une liste d'objets sans méta-informations comme ... columname. Je lirais résultat comme un datatable pour obtenir la valeur d'un bien particulier ... Comment puis-je faire?

Les enregistrements sélectionnés ne représente pas une entité de mon modale de domaine, mais seulement une collection de données pour utiliser un processus spécifique.

Était-ce utile?

La solution 2

Vous avez raison.

Cependant, je trouve une autre solution de cet article publier sur codeprojet: http: // www .codeproject.com / KB / conseils / Execute_SQL_Nhibernate.aspx

Fit pour mon scénario.

Autres conseils

Si vous n'êtes pas mappez cette requête à une entité et attendez un datatable, pourquoi utiliser NHibernate du tout?

Vous pouvez toujours obtenir une connexion de NHibernate si vous utilisez réellement pour le reste de vos données (session.connection) et créer une commande ADO.NET brute à partir de là.

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