如何查看NHibernate生成的查询?
目前我有一些事件监听器设置来记录发生的所有插入/更新/删除操作。我只需浏览属性列表并构建一个字符串以插入审计表。如何查看NHibernate生成的查询?
我真的很想做的是获取NHibernate生成的原始SQL查询。就像NHProf所展示的一样。
我该怎么做?
将<property name="show_sql">true</property>
放在您的配置文件中,以便将SQL输出到控制台。
你也可以把<property name="format_sql">true</property>
如果你想它PrettyPrinted。
或者,你可以配置log4net(记录器是“NHibernate.SQL”,IIRC)并将其发送到任何你想要的地方。
如果输出到控制台,我如何在代码中获取它?我在代码中需要它,因此我可以将它作为审计日志插入到数据库中。 – 2010-10-23 02:56:42
你读过最后一部分了吗? (顺便说一下,我认为这就是nhprof所做的) – 2010-10-23 03:53:19
嗯...从Ayende的帖子在这里http://ayende.com/Blog/archive/2008/10/21/nhprof-logging-interception.aspx并查看包含的文件与NHProf,即HibernatingRhinos.Profiler.Appender.dll,它似乎是一个自定义的log4net appender正在使用。我会研究一下。谢谢。 – 2010-10-23 04:17:07
您也可以使用SQL Server Profiler。 – 2010-10-24 04:58:40
我需要将查询保存为审计目的;因此之前使用事件侦听器。 – 2010-10-25 14:20:02