NHibernate, wie NamedQuery Ergebnis Metadaten lesen?
-
02-10-2019 - |
Frage
Ich habe eine SQL-Abfrage auf meiner nhibernate Mapping-Datei definieren, diesen Aufruf eine gespeicherte Prozedur einige Datensätze zu wählen.
<sql-query name="sp_MYSP">
exec MYDBSP :param1, :param2, :param3
</sql-query>
Ein Code, ich habe die benannte Abfrage auf diese Weise aufrufen:
IQuery myQuery= Session.GetNamedQuery("sp_MYSP");
myQuery.SetString("param1", p1);
myQuery.SetString("param2", p2);
myQuery.SetString("param3", p3);
bekommen Ergebnisse I "Liste" Methode
verwenden myQuery.List();
aber auf diese Weise eine Liste von Objekten ohne Metainformationen zurückkehren ... wie columname. Ich würde wie ein Datatable zu bekommen Wert der spezifischen Eigenschaft lesen ... wie kann ich tun?
Die ausgewählte Datensätze Sie stellt keine Einheit meiner Domain modal, sondern nur eine Sammlung von Daten verwenden, für einen bestimmten Prozess.
Lösung 2
Sie haben Recht.
Allerdings fand ich eine andere Lösung aus diesem Artikel auf codeprojet veröffentlichen: http: // www .codeproject.com / KB / tips / Execute_SQL_Nhibernate.aspx
Fit für mein Szenario.
Andere Tipps
Wenn Sie nicht zuordnen, die Abfrage zu einer Einheit und erwarten eine Datentabelle, warum Gebrauch NHibernate überhaupt?
Sie können immer noch eine Verbindung von NHibernate, wenn Sie es tatsächlich für den Rest Ihrer Daten verwenden (session.Connection) und erstellen Sie einen rohen ADO.NET Befehl von dort aus.