无法获取NHibernate 3.1来记录sql更新或删除语句

时间:2011-04-19 12:55:31

标签: asp.net nhibernate

我目前正在ASP.Net应用程序中使用NHibernate 3.1并使其运行良好(使用Fluent)。我设法在调试时使用Application_Start中的以下代码段将所有生成的SQL查询记录到我的输出选项卡:

private static DebugTextWriter _writer;

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

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

你们有什么想法吗?

由于

2 个答案:

答案 0 :(得分:1)

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

感谢您的回答和评论。

答案 1 :(得分:0)

为了使用log4net进行日志记录,您不需要定义show_sql,只需要配置名为NHibernate和NHibernate.SQL的记录器即可。确保你没有限制级别 - 可能是你只是从INFO级别以上的日志记录,而你丢失的消息是在级别DEBUG?

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