在NHibernate中,我已启用show_sql
来运行单元测试。我的每个单元测试都清除了数据库并重新填充它,这导致了许多我不希望NHibernate输出的SQL查询。
是否可以在不破坏show_sql
的情况下控制SessionFactory
?如果可能的话,我想在运行测试设置时关闭它,然后在测试体开始运行时再打开它。
这可能吗?
答案 0 :(得分:1)
您可以设置此唯一的位置是构建 NHibernate.Cfg.Configuration
。
一旦您从SessionFactory
创建了Configuration
,就无法访问配置设置,我认为这是使用工厂模式的原因之一:确保成功构建的实例不会被运行时重新配置或错误配置搞砸。
如果您确实需要该功能,请获取NH源代码并找到评估show_sql设置的位置。
答案 1 :(得分:1)
另一种选择虽然可能/可能不太好但是使用NHProf并在测试时初始化NHProf。
NHProf不会记录设置/清除数据库只是使用的查询。