public Reserva findById(int id)
 {
     using (var ctx = new GestionReservasContext())
     {
         Reserva reserva = ctx.Reservas.Find(id);
         if (reserva == null)
         {
             throw new KeyNotFoundException();
         }
         //EAGER-LOADING OF REPSONSABLE INSTEAD OF LAZY-LOADING
         ctx.Entry(reserva).Reference(r => r.Responsable).Load();
         ctx.Entry(reserva).Reference(r => r.Sala).Load();
         return(reserva);
     }
 }
        public Reserva update(Reserva reserva)
        {
            using (var ctx = new GestionReservasContext())
            {
                var r = ctx.Reservas.Find(reserva.ReservaID);
                if (r != null)
                {
                    ctx.Reservas.Attach(r);
                }
                else
                {
                    throw new ApplicationException();
                }

                ctx.Reservas.Attach(r);

                if (r.Encuesta != null)
                {
                    ctx.Encuestas.Attach(r.Encuesta);
                }
                r.Encuesta = reserva.Encuesta;


                r.SalaID = reserva.SalaID;

                r.transferSimpleDataFrom(reserva);

                ctx.Entry(r).State = EntityState.Modified;
                ctx.SaveChanges();
                return(reserva);
            }
        }
예제 #3
0
 public Sala update(Sala sala)
 {
     using (var ctx = new GestionReservasContext())
     {
         ctx.Salas.Attach(sala);
         ctx.Entry(sala).State = EntityState.Modified;
         ctx.SaveChanges();
         return(sala);
     }
 }
예제 #4
0
 public Sala findById(int id)
 {
     using (var ctx = new GestionReservasContext())
     {
         Sala sala = ctx.Salas.Find(id);
         if (sala == null)
         {
             throw new KeyNotFoundException();
         }
         ctx.Entry(sala).Reference(s => s.TipoSala).Load();
         return(sala);
     }
 }