public async Task <int> Salvar(T entidade) { if (entidade.Id == 0) { _dataset.Add(entidade); } else { var entidadeEncontrada = _dataset.ToList().FirstOrDefault((e) => e.Id.Equals(entidade.Id)); _context.Entry(entidadeEncontrada).CurrentValues.SetValues(entidade); } try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException ex) { ex.Entries.SingleOrDefault().Reload(); await _context.SaveChangesAsync(); } return(entidade.Id); }