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.

È stato utile?

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();
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top