Domanda

Ho uno sql-query definire sul mio file di mapping NHibernate, che chiama una stored procedure per selezionare alcuni record.

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

Il codice, che io chiamo la query denominata in questo modo:

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

per ottenere risultati che uso "List" metodo

   myQuery.List();

, ma in questo modo si restituisce un elenco di oggetti senza alcuna informazione meta ... come columname. Leggevo risultato come un DataTable per ottenere il valore della proprietà specifica ... come posso fare?

I record selezionati non rappresenta qualsiasi entità della mia modale dominio, ma solo un insieme di dati utilizzare per un processo specifico.

È stato utile?

Soluzione 2

Hai ragione.

Tuttavia ho trovato un'altra soluzione da questo articolo pubblicare sul codeprojet: http: // www .codeproject.com / KB / suggerimenti / Execute_SQL_Nhibernate.aspx

Adatta per il mio scenario.

Altri suggerimenti

Se non si mappatura che query per un soggetto e si aspettano un DataTable, il motivo per cui l'uso NHibernate a tutti?

È ancora possibile ottenere un collegamento da NHibernate se si effettua la connessione per il resto dei tuoi dati (session.Connection) e creare un comando grezzo ADO.NET da lì.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top