제품 이름을 표시하는 간단한보기와 제품이 단종되었는지 여부를 가정 해 보겠습니다. Northwind 데이터베이스에서 데이터를 추출합니다. NHibernate와 함께 간단한 Model View Pattern과 DAO Pattern을 사용하고 있습니다. 폼이로드 될 때로드 버튼과 저장 버튼이있는 UI가 있습니다. 코드 뒤에있는 코드보다로드 버튼을 누르는 경우 데이터를로드하기 위해 호출자를 내 Presenter에 전달하기 만하면됩니다. Preseneter는 DAO를 호출하여 데이터를 가져 와서 뷰로 데이터를 채 웁니다. 저장 버튼을 눌렀을 때보다. 다시 내 코드 뒤에 발표자에게 전화를 전달합니다. 발표자는 낙천적 동시성, 변경 내용 추적 등을 수행하기 위해 Load에서 작성된 세션 객체를 가져야합니다.Nhibernate 및 ISession
내 질문은 변경 추적 및 낙관적 동시성을 수행 할 수 있도록 내 Session 객체를 어디에서 작성합니까?
웹 응용 프로그램에 대해 생각하지 않습니다. winform appplication에 대해 궁금합니다. 미안, 내 질문에 그걸 지정하지 않았다는 사실을 알았어 – codemnky
내 잘못이야. 아마 당신의 DB 작업은 이것이 잘되어야 스레드되지 않습니다. 만약 당신이 감히 싱글 톤 매니저를 사용합니다. –
어플리케이션의 수명 동안 하나의 세션을 만드는 것이 효과가 있다는 것을 증명할 수는 있지만 대부분의 nHibernate '전문가'는 권장하지 않습니다. 예외가 발생하거나 트랜잭션을 롤백해야하는 경우 캐싱 및 잠재적 문제와 관련된 메모리 사용 문제가 있다고 생각합니다. –