VALIDARE E PERSISTERE I DATI

INSERIMENTO DI DATI CON ADO.NET

NET CORE

Grazie al model binding nel form di inserimento del titolo quello che digita l’utente lo ritroviamo nella classe CourseCreateInputModel nel metodo Create di tipo HTTP POST di CoursesController.

Insert

Questo è il codice del metodo Insert di ADO.NET.

Insert Title

INSERIRE ENTITA’ CON ENTITY FRAMEWORK CORE

Anche in questo caso andremo ad inserire un corso con il modello a oggetti a cui siamo abituati. Nel momento in cui vogliamo aggiungere una riga usiamo il metodo Add(…) del DbContext creando una entità Course. Tuttavia, la riga non viene aggiunta immediatamente al database, ma l’entità viene messa temporaneamente in un organo interno il Change Tracker e viene marcata con Added.

Change Tracker

È quando chiamiamo SaveChanges() che il DbContext va ad esaminare i contenuti del Change Tracker, vede che un’entità deve essere aggiunta, stabilisce una connessione con il Database e invia gli opportuni comandi SQL di Insert.

Change tracker

Quando l’entità è stata persistita si ritorna nel Change Tracker l’ID della proprietà Course viene aggiornata, e lo stato cambia da Added ad Unchanged.

Change Tracker

Detached indica al DbContext di dimenticarsi di quell’entità, è come se non ci fosse mai finita nel Change Tracker.

Change Tracker

Adesso andiamo a vedere il codice da inserire nel metodo.

Codice

Il DbContext può persistere più entità.

Persistere più entità

USARE IL MODEL STATE E LA DATA ANNOTATION PER VALIDARE L’INPUT

Non stiamo ancora controllando che il titolo digitato dall’utente sia valido. La sanitizzazione è un qualcosa che viene dopo la validazione, prima verifichiamo se questi dati sono non conformi alle regole, poi possiamo pulirli in modo che l’applicazione possa trattarli.

Validazione

Se le colonne non avessero contenuto un valore del campo orderby valido su cui doveva essere fatto l’ordinamento saremmo andati a sanitizzare l’input dell’utente riassegnando le proprietà.

Validazione
Validazione
Model State

Vediamo le Data Annotation.

Data Annotation
Data Annotation

Incontriamo la nostra committente e stabiliamo insieme alcune regole di validazione.

Data Annotation

Vediamo il codice con le regole di validazione.

Code validation

LINK AL CODICE SU GITHUB

GITHUB

Scaricare il codice della sezione15 o clonare il repository GITHUB per avere a disposizione tutte le sezioni nel tuo editor preferito.