Le due entità sono una relazione uno-a-molti (costruita dal codice api fluente).
public class Parent
{
public Parent()
{
this.Children = new List<Child>();
}
public int Id { get; set; }
public virtual ICollection<Child> Children { get; set; }
}
public class Child
{
public int Id { get; set; }
public int ParentId { get; set; }
public string Data { get; set; }
}
Nel mio controller WebApi ho delle azioni per creare un'entità padre (che funziona correttamente) e aggiornare un'entità padre (che presenta qualche problema). L'azione di aggiornamento è simile a:
public void Update(UpdateParentModel model)
{
//what should be done here?
}
Attualmente ho due idee:
Ottieni un'entità padre tracciata denominata
existing
damodel.Id
e assegna i valorimodel
uno a uno all'entità. Sembra stupido. E inmodel.Children
non so quale bambino è nuovo, quale bambino viene modificato (o addirittura eliminato).Creare una nuova entità padre tramite
model
e collegarla a DbContext e salvarla. Ma come può il DbContext conoscere lo stato dei bambini (nuovo aggiungi / elimina / modificato)?
Qual è il modo corretto di implementare questa funzione?