public Mensaje ActualizarDisgregacionValorDeclarado(string jsonListaVista, int IdValorDeclarado, string jsonListaEliminados, string jsonListaArchivos, string jsonListaArchivosEliminados) { Mensaje mensaje = new Mensaje(); try { using (DbContextTransaction Transaccion = context.Database.BeginTransaction()) { try { JavaScriptSerializer serializer = new JavaScriptSerializer(); dynamic jsonObject = serializer.Deserialize <dynamic>(jsonListaVista); foreach (var registroList in jsonObject) { int IdValorDeclaradoDetalleDisgregado = registroList["IdValorDeclaradoDetalleDisgregado"]; if (IdValorDeclaradoDetalleDisgregado <= 0) { int IdValorDeclaradoDetalle = int.Parse(registroList["IdValorDeclaradoDetalle"]); short IdRamoPoliza = short.Parse(registroList["IdRamoPoliza"]); short IdTipoPoliza = short.Parse(registroList["IdTipoPoliza"]); decimal?ImporteValorDeclarado = registroList["ImporteValorDeclarado"] != null?Decimal.Parse(registroList["ImporteValorDeclarado"]) : null; short?IdUnidadMedida = registroList["IdUnidadMedida"] != null?short.Parse(registroList["IdUnidadMedida"]) : null; decimal?Cantidad = registroList["Cantidad"] != null?Decimal.Parse(registroList["Cantidad"]) : null; short IdMoneda = short.Parse(registroList["IdMoneda"]); context.SP_I_ValorDeclaradoDetalleDisgregado( IdValorDeclaradoDetalle, IdRamoPoliza, IdTipoPoliza, IdUnidadMedida, Cantidad, IdMoneda, ImporteValorDeclarado ); } } dynamic jsonObjectEliminar = serializer.Deserialize <dynamic>(jsonListaEliminados); foreach (var registroList in jsonObjectEliminar) { context.SP_D_ValorDeclaradoDetalleDisgregado(registroList["IdValorDeclaradoDetalleDisgregado"]); } ActualizacionArchivosValorDeclarado(IdValorDeclarado, jsonListaArchivos, jsonListaArchivosEliminados); //--> Confirma los cambios y los almacena en mi ef y no lo envia al servidor--> context.SaveChanges(); //--> confirma los cambios y lo envia al servidor Transaccion.Commit(); mensaje.esError = false; } catch (Exception ex) { Transaccion.Rollback(); throw ex; } } } catch (Exception ex) { mensaje.mensaje = ex.Message; mensaje.esError = true; } return(mensaje); }