2009-05-12 12 views
15

Fondamentalmente voglio essere in grado di fare questo:l'esecuzione di istruzioni SQL con Fluent NHibernate

session.ExecuteSql("...");

non ho bisogno di mappare a qualsiasi entità o restituisce alcun valore. Eventuali suggerimenti?

+0

Non specificamente una domanda relativa a Fluent NHibernate. –

risposta

27

Come già detto, questo non è un problema di Fluent NHibernate, ma ecco un esempio:

public int GetSqlCount<T>(Session session, string table) 
{ 
    var sql = String.Format("SELECT Count(*) FROM {0}", table); 
    var query = session.CreateSQLQuery(sql); 
    var result = query.UniqueResult(); 
    // Could also use this if only updating values: 
    //query.ExecuteUpdate(); 

    return Convert.ToInt32(result); 
} 

Si vuole indagare l'interfaccia ISQLQuery, a seconda delle esigenze.

+1

C'è un modo per farlo usando una query con nome in fluente nibernato invece di inline? –

+1

Non esiste un modo specifico per FNH, ma dovrebbe funzionare correttamente con la configurazione di NHiberbate. Come senza FNH, inserisci le query con nome in un file .hbm.xml. Quindi configurare FNH per caricare il file di mapping insieme ai propri mapping FNH e si dovrebbe essere in grado di chiamare le query utilizzando il metodo GetNamedQuery(). –

Problemi correlati