У меня проблема с этим фрагментом кода
Если я не использую транзакцию (я прокомментировал здесь этот код), обновление не произойдет.
using (var session = Repository.TSession())
{
var utilisateurDal = new UtilisateurDal(session);
var utilisateur = utilisateurDal.GetUtilisateur(login);
if (utilisateur != null)
{
//var transaction = Session.BeginTransaction();
utilisateur.MotDePasse = "test";
session.Update(utilisateur);
//transaction.Commit();
}
}
Код, который извлекает объект для обновления:
(Обратите внимание, что логин не является уникальным идентификатором)
public Utilisateur GetUtilisateur(ISession session, string login)
{
return session.Query<Utilisateur>().SingleOrDefault(u => u.Identifiant == login);
}
Когда я включаю режим отладки, у меня появляется это сообщение:
NHibernate.Event.Default.DefaultSaveOrUpdateEventListener: 2011-11-16 14:14:57,832 [35] DEBUG NHibernate.Event.Default.DefaultSaveOrUpdateEventListener [(null)] - ignoring persistent instance
NHibernate.Event.Default.DefaultSaveOrUpdateEventListener: 2011-11-16 14:14:57,833 [35] DEBUG NHibernate.Event.Default.DefaultSaveOrUpdateEventListener [(null)] - object already associated with session: [BusinessObjets.Utilisateur#3]
Вы понимаете смысл этого поведения?
Привет