Te dwie jednostki są relacjami jeden-do-wielu (zbudowane przez kod pierwszy 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; }
}
W moim kontrolerze WebApi mam akcje, aby utworzyć podmiot nadrzędny (który działa dobrze) i zaktualizować podmiot nadrzędny (który ma jakiś problem). Akcja aktualizacji wygląda następująco:
public void Update(UpdateParentModel model)
{
//what should be done here?
}
Obecnie mam dwa pomysły:
Uzyskaj śledzoną jednostkę nadrzędną o nazwie
existingprzezmodel.Idi przypisz wartościmodelpo kolei do encji. To brzmi głupio. Imodel.Childrennie wiem, które dziecko jest nowe, które jest modyfikowane (a nawet usuwane).Utwórz nową jednostkę nadrzędną za pośrednictwem
modeli dołącz ją do DbContext i zapisz. Ale w jaki sposób DbContext może poznać stan elementów podrzędnych (nowe dodawanie / usuwanie / modyfikowanie)?
Jaki jest prawidłowy sposób zaimplementowania tej funkcji?