Не удается получить NHibernate 3.1 для регистрации инструкций sql update или delete

#asp.net #nhibernate

#asp.net #nhibernate

Вопрос:

В настоящее время я использую NHibernate 3.1 в ASP.Сетевое приложение и оно работает довольно хорошо (с Fluent). Мне удалось заставить его регистрировать все сгенерированные SQL-запросы на моей вкладке output во время отладки, используя следующий фрагмент в Application_Start:

private static DebugTextWriter _writer;

protected virtual void Application_Start(object sender, EventArgs e)
{
_writer = new DebugTextWriter();
Console.SetOut(_writer);
}

Недавно я обновил NHibernate с 2.1 до 3.1, и теперь мои инструкции update и delete больше не выводятся в журнал to…

Ребята, у вас есть какие-нибудь идеи, почему?

Спасибо

Комментарии:

1. Есть ли у вас ссылка на log4net, поскольку я полагаю, что это не является требованием в NH 3 или есть .ShowSql() в вашем cfg-коде

2. Привет, у меня нет ссылки на log4net, и я использую свойство show_sql в моем hibernate.cfg.xml файл.

Ответ №1:

Я наконец нашел причину такого поведения. Оказывается, что запись adonet.batch_size в hibernate.cfg.xml проблема в файле. После удаления этого элемента property инструкции update и delete были, наконец, выведены, как ожидалось.

Спасибо за ваши ответы и комментарии.

Ответ №2:

Для входа с использованием log4net вам не нужно определять show_sql, вам просто нужно настроить регистраторы с именами NHibernate и NHibernate.SQL. Убедитесь, что вы не ограничиваете уровни — может быть, вы регистрируетесь только с уровня INFO и выше, а сообщения, которые вы пропускаете, находятся на уровне DEBUG?

Вот краткое руководство: http://nhforge.org/wikis/howtonh/configure-log4net-for-use-with-nhibernate.aspx

Комментарии:

1. Спасибо за совет. К сожалению, это не решило мою проблему.