public int Grabar(ordenpedido item) { int i = 0; using (ispDB db = new ispDB()) { try { db.BeginTransaction(); PagoPr.Instancia.Grabar(item.fkidentificadorespago.fkconveniospago); if (item.id == 0) { item.id = db.ordenespedidos.Max(x => x.id); item.id++; } i = db.InsertOrReplace(item); db.detallesordenespedidos.Where(x => x.idordenpedido == item.id).Delete(); for (int ix = 0; ix < item.fkdetallesordenespedido.Count(); ix++) { detalleordenpedido detalle = item.fkdetallesordenespedido.ElementAt(ix); if (detalle.idordenpedido == 0) { detalle.idordenpedido = item.id; } } db.BulkCopy(item.fkdetallesordenespedido); db.CommitTransaction(); } catch (Exception) { db.RollbackTransaction(); throw; } } return(i); }