public ActionResult Edit(Pessoa obj) { using(ISession session = NHibernateHelper.OpenSession()) { using(ITransaction transaction = session.BeginTransaction()) { try { foreach(Telefone tel in obj.Telefones) { tel.Pessoa = obj; } session.Merge(obj); transaction.Commit(); ViewData[Constantes.VD_MSG_SUCESSO] = Constantes.MSG_SUCESSO_REGISTRO_ATUALIZADO; } catch(PropertyValueException) { ViewData[Constantes.VD_MSG_ERRO] = Constantes.MSG_ERRO_REGISTRO_ATUALIZADO; transaction.Rollback(); } catch(SqlException se) { ViewData[Constantes.VD_MSG_ERRO] = Constantes.MSG_ERRO_REGISTRO_ATUALIZADO + @" :: " + se.Message; transaction.Rollback(); } catch(GenericADOException ge) { ViewData[Constantes.VD_MSG_ERRO] = Constantes.MSG_ERRO_REGISTRO_ATUALIZADO + @" :: " + (ge.InnerException != null ? ge.InnerException.Message : ge.Message); transaction.Rollback(); } } } return View("Edit", obj); }
public ActionResult Edit(int id) { Pessoa obj = new Pessoa(); if(id > 0) { obj = NHibernateHelper.OpenSession().CreateCriteria<Pessoa>() .Add(Restrictions.Eq(Projections.Property(Pessoa.ID), id)) .UniqueResult<Pessoa>(); } return View("Edit", obj); }