2008-11-10 4 views
4

NHibernate 구성이 모든 상호 작용에 대해 sql을 표시하도록 설정되어 있습니다. 이 때문에 일부 대규모 통합 테스트는 성능이 좋지 않습니다 (특히 테스트 보고서를 생성 할 때).(런타임시) 초기 설정 후 NHibernate ShowSQL을 끌 수 있습니까?

ShowSql을 런타임에 끄고 프로그래밍 방식으로 다시 전환하는 방법이 있습니까?

답변

3

런타임에는 구성 객체에서 SetProperties()를 사용하고 해당 구성에서 SessionFactory를 만들 수 있습니다. SetProperties는 사전을 매개 변수로 사용합니다. 그러면 새 SessionFactory가 새 구성 설정을 사용합니다. ISessionFactory Configuration

는 희망이 도움이 :

 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(); 

더 많은 정보를 들어, 문서의이 섹션을 확인하십시오.

/Erik

+0

감사합니다. 이미 초기 구성을로드 할 때이 방법을 사용하고 있습니다. 내 SessionFactory를 다시 만들지 않고도 ShowSql 속성을 수정할 수 있기를 바랬습니다. – berko

관련 문제