2010-12-21 8 views
0

In Entwicklung eine Multi-Threading-Anwendung unter Verwendung von Code smith Nhibernate Vorlage, die ich gelesen, dass ich eine Sitzung oder jeden Thread verwenden muß, Problem ist, ich weiß nicht, wie eine neue Sitzung von Codesmith generierten Klassen zu bekommen ...Codesmith Nhibernate

Kann mir irgendein Körper ein sehr, sehr einfaches Beispiel geben, wie man CodeSmith Nhibernate in 2 verschiedenen Threads benutzt? Oder gib mir wenigstens Code, um eine neue Sitzung zu erstellen?

danke im voraus.

Antwort

2

Die von CodeSmith generierten Manager-Objekte sind bereits Thread-sicher und stellen sicher, dass jeder Thread ein eigenes NHibernate-Sitzungsobjekt erhält. Um sicherzustellen, dass Threads ordnungsgemäß geöffnet und geschlossen werden, ist es sehr wichtig, dass Sie immer über die Manager verfügen. Hier ein Beispiel:

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