我的NHibernate配置设置为显示所有交互的sql。因此,我的一些较大的集成测试表现不佳(特别是在生成测试报告时)。
有没有办法在运行时关闭ShowSql - 然后以编程方式重新启用它。
答案 0 :(得分:3)
您可以在运行时在配置对象上使用SetProperties(),然后从该配置创建SessionFactory。 SetProperties将Dictionary作为参数。然后,新的SessionFactory将使用新的配置设置。
IDictionary<string, string> props = new Dictionary<string, string>();
props["show_sql"] = "true";
Configuration config = new NHibernate.Cfg.Configuration();
config.SetProperties(props);
config.Configure();
config.AddAssembly(typeof(User).Assembly);
ISessionFactory factory = config.BuildSessionFactory();
有关详情,请查看文档的以下部分: ISessionFactory Configuration
希望它有所帮助。
/埃里克