Кодексан Нибернат
-
12-10-2019 - |
Вопрос
Я разработаю многопоточное приложение, используя шаблон Code Smith nhibernate, я прочитал, что я должен использовать сеанс или каждый поток, проблема в том, что я не знаю, как получить новый сеанс из сгенерированных классов Codesmith ...
Может ли любое тело дать мне очень очень простой пример того, как использовать Codesmith Nhibernate в двух разных потоках? Или, по крайней мере, привален мне кода для создания нового сеанса?
заранее спасибо.
Решение
Объекты сгенерированных кодов менеджера уже безопасны потоком и убедитесь, что каждый поток получит свой собственный объект сеанса 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();
}