2010-07-07 4 views
0

J'ai une requête sql définie sur mon fichier de mappage nhibernate, qui appelle une procédure stockée pour sélectionner certains enregistrements.NHibernate, comment lire les métadonnées de résultat NamedQuery?

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

Le code, j'appelle la requête nommée ainsi:

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 le retourner une liste d'objets sans aucune méta-information ... comme columname. Je voudrais lire le résultat comme un datatable pour obtenir la valeur de la propriété spécifique ... comment puis-je faire?

Les enregistrements sélectionnés ne représentent aucune entité de mon domaine modal, mais seulement une collection de données utilisée pour un processus spécifique.

Répondre

0

Si vous ne mappez pas cette requête à une entité et attendez une datatable, pourquoi utiliser NHibernate?

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

Questions connexes