Estoy utilizando linq a Nhibernate para activar alguna consulta de selección a la base de datos.Cómo saber la consulta generada por Fluidez NHibernate
Mi pregunta es, ¿cómo sé que la consulta generada por Fluidez NHibernate?
Estoy utilizando linq a Nhibernate para activar alguna consulta de selección a la base de datos.Cómo saber la consulta generada por Fluidez NHibernate
Mi pregunta es, ¿cómo sé que la consulta generada por Fluidez NHibernate?
Si desea que el SQL esté en log4net, asegúrese de configurar el registrador en la sección de configuración.
Puse el paquete NHibernate en "INFO" para reducir el ruido y el NHibernate.SQL para todos, así puedo registrar todas las sentencias de SQL.
<logger name="NHibernate"> <level value="INFO" /> </logger> <logger name="NHibernate.SQL"> <level value="ALL" /> </logger>
Ver this. Lo que necesita es hibernate.show_sql
.
gracias .. ............. –
¿Cómo se configura eso con Fluent NHibernate? –
Con Fluido NHibernate, puede activar el show_sql
así:
Fluently.Configure()
.Database(MsSqlConfiguration.MsSql2005.ShowSql().ConnectionString(...))...
NHibernate ahora se imprimirá cada instrucción SQL para Console.Out
.
Hola Kevin, ¡Gracias por publicar esto! Me pregunto si también ha conectado Log4Net para que envíe el SQL generado a un archivo. – 5x1llz
Esto es muy frustrante. ¿Alguna idea de por qué esto nunca funcionaría? Estoy mirando a través de mi consola y simplemente no está allí. – Milimetric
También puede resultar útil http://nhprof.com/
Puede utilizar SQL como perfiladores this one también.
También puede enganchar en log4net.
Definitivamente compre y use NHProf. Este es un producto increíble y no solo le muestra qué consultas se están ejecutando, sino que también le muestra posibles problemas de rendimiento con sus asignaciones y consultas de NHibernate.
He encontrado 4 opciones para saber sql query en nhibernate y fluente nhibernate.
Intercepter - Es realmente bueno ver sql. podemos ponerlo en nuestro Output of Visual Studio e incluso en el archivo de registro.
ISessionFactory sf = Fluently.Configure()
.Database(MySQLConfiguration.Standard.ConnectionString(ConnectionString).ShowSql())
.Mappings(m => m.FluentMappings.AddFromAssemblyOf<Stock>())
.ExposeConfiguration(c => c.SetInterceptor(new ABCInterceptor()))
.BuildSessionFactory();
public class ABCInterceptor : EmptyInterceptor
{
public override NHibernate.SqlCommand.SqlString OnPrepareStatement(NHibernate.SqlCommand.SqlString sql)
{
Trace.WriteLine(sql.ToString());
return sql;
}
}
Fluido NHibernate ** ** no genera ningún tipo de consultas. Es NHibernate quien los genera. –
Creo que esta pregunta podría ayudarlo: http://stackoverflow.com/questions/474659/how-to-log-sql-calls-with-nhibernate-to-the-console-of-visual-studio – HerbalMart