Va bene avere una transazione a livello di presentazione?

0

Supponiamo di avere un Order oggetto che ha List<OrderItem> , l'utente va alla pagina e crea il suo ordine, ora dovrei salvare la sua selezione nel database, ho due classi di servizi dati una per ogni entità , OrderDataService e OrderItemDataService , che è più corretto?

1- A livello di presentazione nel pulsante Add Scrivo un codice che chiama il metodo OrderDataService.Add(Order order) , quindi ciclo su List<OrderItem> e richiama OrderItemDataService.Add(OrderItem item) per ogni OrderItem facendo in modo che la transazione avvenga a livello di presentazione dietro il pulsante Add .

OR

2- Creare un metodo in OrderService.AddWithItems(Order order, List<OrderItem> items) che richiede Order e OrderItem come parametro e fare in modo che questo metodo gestisca il looping e la transazione?

Nota: Questo è un esempio molto semplice, in pratica le cose sono più complicate e la creazione di un metodo OrderService.AddWithItems () potrebbe richiedere troppi parametri.

    
posta Sisyphus 31.05.2018 - 11:59
fonte

1 risposta

1

Se hai un oggetto ordine che ha un elenco di elementi in esso, mi aspetterei un servizio con un metodo add che ordini un ordine per salvare tutto l'ordine che include gli articoli. Non ci dovrebbero essere parametri aggiuntivi per aggiungere un ordine, l'oggetto ordine dovrebbe sapere tutto sugli ordini, non ci dovrebbe essere la necessità di passare articoli, clienti o qualsiasi altra cosa al di fuori dell'oggetto ordine, almeno quando si aggiunge un ordine.

    
risposta data 31.05.2018 - 14:12
fonte

Leggi altre domande sui tag