2009-05-12 14 views
15

Básicamente quiero ser capaz de hacer esto:ejecutar sentencias SQL con Fluido NHibernate

session.ExecuteSql("...");

no necesito realizar un mapa de cualquier entidad o devuelve ningún valor. ¿Alguna sugerencia?

+0

No es específicamente una pregunta relacionada con Fluiber NHibernate. –

Respuesta

27

Como ya se ha mencionado, esto no es un problema Fluido NHibernate pero aquí es un ejemplo:

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); 
} 

Usted tendrá que investigar la interfaz ISQLQuery, dependiendo de sus necesidades.

+1

¿Hay alguna manera de hacerlo utilizando una consulta con nombre en nhibernate con fluidez en lugar de en línea? –

+1

No hay una manera específica de FNH pero debería funcionar bien con la configuración de NHiberbate. Como sin FNH, coloque sus consultas con nombre en un archivo .hbm.xml. Luego configure FNH para cargar el archivo de mapeo junto con sus mapeos FNH y podrá llamar a las consultas utilizando el método GetNamedQuery(). –

Cuestiones relacionadas