2010-12-21 6 views
0

임 ... 문제는 내가 CodeSmith 생성 된 클래스에서 새 세션을 얻는 방법을 잘 모릅니다이다, 내가 세션 또는 모든 스레드를 사용해야 읽기, 코드 스미스 NHibernate에 템플릿을 사용하여 멀티 스레딩 응용 프로그램을 개발CodeSmith 자 NHibernate는

어떤 몸이라도 CodeSmith Nhibernate를 2 가지 스레드에서 사용하는 방법에 대한 매우 간단한 예제를 제공 할 수 있습니까? 적어도 새로운 세션을 만들려면 코드를 공개하지 않습니까?

미리 감사드립니다.

답변

2

CodeSmith가 생성 한 Manager 개체는 이미 스레드로부터 안전하며 각 스레드가 자신의 NHibernate 세션 개체를 갖도록합니다. 스레드가 제대로 열리고 닫히게하려면 항상 관리자를 처 리해야합니다. 다음은 예입니다.

IManagerFactory managerFactory = new ManagerFactory(); 
using (ICategoryManager categoryManager = managerFactory.GetCategoryManager()) 
{ 
    Category categoryA = new Category(); 
    categoryA.Id = "TEST1"; 
    categoryA.Name = "Test 1"; 
    categoryA.Descn = "Hello world!"; 

    categoryManager.Save(categoryA); 
    categoryManager.Session.CommitChanges(); 
} 
관련 문제