Les deux entités sont une relation un-à-plusieurs (construite par le code first fluent api).
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; }
}
Dans mon contrôleur WebApi, j'ai des actions pour créer une entité parente (qui fonctionne bien) et mettre à jour une entité parente (qui a un problème). L'action de mise à jour ressemble à ceci:
public void Update(UpdateParentModel model)
{
//what should be done here?
}
Actuellement, j'ai deux idées:
Obtenez une entité parent suivie nommée
existing
parmodel.Id
et attribuez des valeursmodel
une par une à l'entité. Cela semble stupide. Et dansmodel.Children
je ne sais pas quel enfant est nouveau, quel enfant est modifié (ou même supprimé).Créez une nouvelle entité parente via
model
, attachez-la au DbContext et enregistrez-la. Mais comment le DbContext peut-il connaître l'état des enfants (nouvel ajout / suppression / modification)?
Quelle est la bonne façon d'implémenter cette fonctionnalité?