以编程方式设置show_sql而不重新创建SessionFactory?

时间:2012-05-03 12:44:36

标签: nhibernate

在NHibernate中,我已启用show_sql来运行单元测试。我的每个单元测试都清除了数据库并重新填充它,这导致了许多我不希望NHibernate输出的SQL查询。

是否可以在不破坏show_sql的情况下控制SessionFactory?如果可能的话,我想在运行测试设置时关闭它,然后在测试体开始运行时再打开它。

这可能吗?

2 个答案:

答案 0 :(得分:1)

您可以设置此唯一的位置是构建 NHibernate.Cfg.Configuration 。 一旦您从SessionFactory创建了Configuration,就无法访​​问配置设置,我认为这是使用工厂模式的原因之一:确保成功构建的实例不会被运行时重新配置或错误配置搞砸。

如果您确实需要该功能,请获取NH源代码并找到评估show_sql设置的位置。

答案 1 :(得分:1)

另一种选择虽然可能/可能不太好但是使用NHProf并在测试时初始化NHProf。

NHProf不会记录设置/清除数据库只是使用的查询。