244 messaggi dal 22 gennaio 2017
Contributi
Ciao Marco, ti ringrazio per il bellissimo contributo di oggi, MongoDB è un bel tema.

Per un piccolo progetto ho utilizzato MongoDB e volevo chiederti un parere.
Avevo la necessità di modificare un singolo nodo o una serie di sottonodi dell'entità .
In questo caso è preferibile fare il replace dell'intera entità, anche se l'entità è grande?
Oppure è preferibile modificare solo il sottonodo dell'entità? Nel mio caso ho preferito applicare quest'ultimo scenario ma il codice risulta sicuramente meno leggibile.

Quali sono i vantaggi e gli svantaggi di modificare una entità con numerosi nodi e sottonodi?
Grazie mille.
1.508 messaggi dal 27 dicembre 2005
this.TryUpdateModelAsync(original)) prende i nuovi valori da qui [Bind("Name,Email")] Person person) ?
244 messaggi dal 22 gennaio 2017
Contributi
Ciao totti240282,
La sintassi di ASP .NET Core: ([Bind("Name,Email")] Person person), significa che viene eseguito il Bind dei soli campi segnalati nell'espressione di Bind. Name e Email in questo specifico caso.
Se L'entità sulla pagina avesse anche Birthday, essa verrebbe ignorata.
1.508 messaggi dal 27 dicembre 2005
Grazie quello che non capisco è cpme fa .TryUpdateModelAsync(original)) a capire che deve prendere i dati da person ?
Solo perchè è lo stesso tipo di oggetto ?
244 messaggi dal 22 gennaio 2017
Contributi
Inferisce il tipo di oggetto da "original" che è Person.

Questa: TryUpdateModelAsync(original) è la semplificazione di TryUpdateModelAsync<Person>(original)
1.508 messaggi dal 27 dicembre 2005
Quindi nella firma Edit(string id, [Bind("Name,Email")] Person person) non posso passare due oggetti person giusto ?
244 messaggi dal 22 gennaio 2017
Contributi
Puoi ricevere anche una lista di oggetti Person.
Ciao,

TryUpdateModelAsync si limita a eseguire il modelbinding verso l'oggetto "original" passato come parametro, prendendo i dati dalla request. In pratica fa la stessa cosa che viene fatta - in automatico dal runtime - per popolare l'oggetto "person".

Ovviamente la whitelist dei field si applica solo a "person", perché è a "person" che è stato attaccato l'attribute "Bind".

C'è un overload di TryUpdateModel che vi permette di specificare la whitelist anche lì, ma l'ho omesso per non appesantire troppo gli esempi.

Qui trovate un esempio che lo usa:
https://docs.microsoft.com/en-us/aspnet/core/data/ef-mvc/update-related-data#customize-the-create-and-edit-pages-for-courses

Magari ne facciamo uno script in futuro

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.