CodeSmith NHibernate
-
12-10-2019 - |
Domanda
Im sviluppando un'applicazione multithreading utilizzando il codice Smith NHibernate Template, ho letto che devo usare una sessione o ogni thread, il problema è non so come ottenere una nuova sessione dalle classi CodeSmith generato ...
qualsiasi organismo può fornirmi un esempio molto semplice di come utilizzare CodeSmith NHibernate in 2 diversi thread? o almeno privide mi di codice per creare nuova sessione?
grazie in anticipo.
Soluzione
Gli oggetti generati CodeSmith Manager sono già thread-safe, e garantire che ogni thread otterrà il proprio oggetto di sessione NHibernate. Per garantire che le discussioni vengono aperti e chiusi correttamente, è molto importante che sempre Smaltire i gestori. Ecco un esempio:
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();
}