NHibernate, comment lire les métadonnées des résultats NamedQuery?
-
02-10-2019 - |
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.
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à.