2010-04-07 4 views
2

유창한 구성의 래퍼와 같은 것을 사용할 수 있습니까? 그렇다면 유창한 nHibernate가있는 nHibernate 래퍼 사용

http://jeffreypalermo.com/blog/use-this-nhibernate-wrapper-to-keep-your-repository-classes-simple/

는 어디에서 유창한 설정을 추가?

또한 asp.net 및 windows 응용 프로그램에서 모두 사용하기에 적합합니까? 저장소 패턴을 사용하여 내 nHibernate 세션을 생성 할 계획입니까? ,

public Configuration GetConfiguration() 
    { 
     return Fluently.Configure() 
      .Database(/* your database settings */) 
      .Mappings(/* your mappings */) 
      .ExposeConfiguration(/* alter Configuration */) // optional 
      .BuildConfiguration(); 
    } 

상황 처리에 대한 추가적인 문의에 대해서 : 대신 당신이 링크 된 페이지에 표시된

public Configuration GetConfiguration() 
    { 
     var configuration = new Configuration(); 
     configuration.Configure(); 
     return configuration; 
    } 

당신의 SessionBuilder에서 GetConfiguration 방법에서

답변

4

는 단순히 같은 것을 할 당신은 ISessionBuilder을 상속받은 두 개의 클래스를 가질 수 있습니다. AspSessionBuilderWinAppSessionBuilder을 입력하고 현재 프로젝트에 적절한 것을 삽입하십시오. HttpContext 대신 문맥을 처리하려면이 질문에 Jamie Ideposted as an answer으로 설명 된 전략을 사용해야합니다. "call" 또는 "thread_static" 같은

.ExposeConfiguration(x => x.SetProperty("current_session_context_class", "web") 

뭔가 : 당신은 단지이 줄을 수정해야합니다. 다양한 상황에 맞는 세션 유형의 좋은 설명은 NHibernate에 포지 위키에서이 페이지를 참조하십시오 :

Contextual Sessions @ NHibernate Forge

+0

감사합니다 ... 이것은 asp.net 이외의 다른 응용 프로그램에 적합합니까 ?? - Windows 서비스에서 내 저장소를 사용하려고합니다. – Alex

+0

예. 너 괜찮을거야. 내 모든 응용 프로그램에서 비슷한 저장소 패턴을 사용합니다. – snicker

+0

고마워요 :-) 그 링크의 예제에서 getExistingOrNewSession은 HttpContext를 검사합니다 - Windows 응용 프로그램에서 사용할 때 어떻게 작동합니까? – Alex

1

예 당신이 그것을 사용할 수 있지만 사용하는 것이 좋습니다 NHibernate에의 상황에 맞는 세션 관리 내장보다는 스스로 처리 . 내 대답은 this question입니다. 적은 코딩 외에도 HttpContext, Call 및 ThreadStatic 외에도 두 가지 옵션을 제공합니다.