Подтвердить что ты не робот

Как узнать запрос, созданный Fluent NHibernate

Я использую linq для Nhibernate, чтобы запустить некоторый запрос выбора в базу данных.

Мой вопрос в том, откуда я знаю, запрос, созданный Fluent NHibernate?

4b9b3361

Ответ 1

Если вы хотите, чтобы SQL находился в log4net, убедитесь, что вы установили регистратор в свой раздел конфигурации.

Я поместил пакет NHibernate в "INFO", чтобы уменьшить шум и NHibernate.SQL ко всем, чтобы я мог регистрировать все SQL-инструкции.

  
 <logger name="NHibernate">
   <level value="INFO" />
 </logger>


  <logger name="NHibernate.SQL">
    <level value="ALL" />
  </logger>

Ответ 2

С Fluent NHibernate вы можете включить show_sql следующим образом:

Fluently.Configure()
    .Database( MsSqlConfiguration.MsSql2005.ShowSql().ConnectionString(...) )...

NHibernate теперь распечатает каждый оператор sql до Console.Out.

Ответ 3

Вы также можете найти этот полезный http://nhprof.com/

Ответ 4

См. this. Вам нужно hibernate.show_sql.

Ответ 5

Я нашел 4 варианта знать sql-запрос в nhibernate и свободно nhibernate.

  • Журнал - Джоуи В. сказал в ответ на этот же вопрос.
  • ShowSql - сказал Кевин Берридж в ответ на этот же вопрос.
  • NHProf - это потрясающий профайлер. NHProf
  • Intercepter - Очень приятно видеть sql. мы можем поместить его в наш вывод Visual Studio и даже в файл журнала.

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

Ответ 6

Вы можете использовать профилировщики sql, например этот.

Ответ 7

Определенно покупайте и используйте NHProf. Это потрясающий продукт, который не только показывает вам, какие запросы запускаются, но также показывает любые потенциальные проблемы с производительностью с отображением и запросами NHibernate.

Ответ 8

Вы также можете подключить log4net.