#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. Спасибо за совет. К сожалению, это не решило мою проблему.