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.

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top