Metodo corretto per gestire lo scenario di modifica / aggiornamento nel modello di repository

1

Ho un pattern di repository utilizzato nel mio progetto .NET Core 2.1. Durante l'implementazione dello scenario di modifica / aggiornamento, ho un dubbio.

Il mio dominio:

public class Component
{
    public int Id { get; set; }
    public string Description { get; set; }
    public decimal Amount { get; set; }
    public string Narration { get; set; }
}

Qui, il repository avrà un metodo:

public async Task<ComponentViewModel> Edit(ComponentEditDTO dto)
{
    var fcDb = await _context.FeeComponentCollection.FirstOrDefaultAsync(f => f.Id == dto.Id);

    if (fcDb == null)
    {
         //what to do here?        
    }
}

Ho pensato a due alternative.

  1. Avere un metodo nel repository che controlli se esiste l'ID, quindi utilizzare questo metodo per rifiutare le richieste di modifica a livello di API
  2. Lascia che il repository gestisca interamente il caso di modifica. Posso pensare di sollevare un'eccezione (forse RecordNotFoundException) qui. Una volta sollevata l'eccezione, l'API può quindi gestire l'errore emettendo BadRequest.

Qual è la procedura standard in questi casi?

    
posta Vivekanand P V 05.09.2018 - 16:07
fonte

0 risposte

Leggi altre domande sui tag