2011-04-19 35 views
1

我目前在一个ASP.Net应用程序中使用NHibernate 3.1,并得到它工作得很好(与流利)。我设法让它记录所有生成的SQL查询到我的输出选项卡中,同时通过使用的Application_Start下面的代码片断调试:NHibernate 3.1无法登录SQL更新或删除语句

private static DebugTextWriter _writer;

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

我最近从2.1到3.1,现在我的更新升级的NHibernate并删除语句不再输出到日志...

你们有什么想法,为什么?

感谢

+0

你有一个log4net的参考,因为我相信它不是在NH 3+的要求或在你的cfg代码中有'.ShowSql()' – Rippo 2011-04-19 15:24:15

+0

嗨,我没有参考log4net,我正在使用我的hibernate.cfg.xml文件中的show_sql属性。 – BredStik 2011-04-19 17:05:33

回答

1

我终于发现是什么造成了这种行为。事实证明,hibernate.cfg.xml文件中的adonet.batch_size条目导致了这个问题。删除此属性元素后,更新和删除语句最终按预期输出。

感谢您的回答和评论。

0

为了使用log4net的记录,你并不需要定义show_sql,你只需要配置一个名为NHibernate和NHibernate.SQL记录仪。确保你不限制级别 - 是否只是从INFO级别以上进行登录,而你错过的消息级别是DEBUG?

这里是一个简短的教程:http://nhforge.org/wikis/howtonh/configure-log4net-for-use-with-nhibernate.aspx

+0

感谢您的提示。不幸的是,这并没有解决我的问题。 – BredStik 2011-04-19 23:32:17