我目前正在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,现在我的更新和删除语句不再输出到日志......
你们有什么想法吗?
由于
答案 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