public void Guardar(Insumo insumo)
 {
     DbContext db = new DbContext();
     try
     {
         if (insumo.IdInsumo <= 0)
             db.Insumo.AddObject(insumo);
         else
         {
             Insumo uInsumo = db.Insumo.SingleOrDefault(s => s.IdInsumo == insumo.IdInsumo);
             if (uInsumo != null)
             {
                 uInsumo.IdNegocio = insumo.IdNegocio;
                 uInsumo.IdUnidad = insumo.IdUnidad;
                 uInsumo.Descripcion = insumo.Descripcion;
                 uInsumo.StockMinimo = insumo.StockMinimo;
                 uInsumo.StockMaximo = insumo.StockMaximo;
                 foreach (InsumoPresentacion presentacion in uInsumo.InsumoPresentacion)
                 {
                     db.InsumoPresentacion.DeleteObject(presentacion);
                 }
                 uInsumo.InsumoPresentacion = insumo.InsumoPresentacion;
             }
         }
         db.SaveChanges();
     }
     catch (Exception ex)
     {
         throw new Exception(ex.Message);
     }
     finally
     {
         db.Dispose();
     }
 }
 private void btnGuardar_Click(object sender, EventArgs e)
 {
     try
     {
         if (ValidaCaptura())
         {
             if (_insumo == null)
                 _insumo = new Insumo();
             _insumo.IdNegocio = (int)cmbNegociosRegistro.SelectedValue;
             _insumo.Descripcion = txtDescripcion.Text.Trim();
             _insumo.IdUnidad = (int)cmbUnidades.SelectedValue;
             _insumo.StockMinimo = Convert.ToDecimal(txtStockMinimo.Text);
             _insumo.StockMaximo = Convert.ToDecimal(txtStockMaximo.Text);
             _insumo.InsumoPresentacion = new List<InsumoPresentacion>();
             foreach (DataGridViewRow presentacion in dgvInsumos.Rows)
             {
                 _insumo.InsumoPresentacion.Add(new InsumoPresentacion { IdPresentacion = (int)presentacion.Cells[0].Value, RendimientoPromedio = (decimal)presentacion.Cells[2].Value });
             }
             _nInsumos.Guardar(_insumo);
             LimpiaControles();
             Mensajes.AlmacenExito(Text);
         }
     }
     catch (Exception ex)
     {
         Mensajes.Error(ex.Message, Text);
     }
 }