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
existing
przezmodel.Id
i przypisz wartościmodel
po kolei do encji. To brzmi głupio. Imodel.Children
nie wiem, które dziecko jest nowe, które jest modyfikowane (a nawet usuwane).Utwórz nową jednostkę nadrzędną za pośrednictwem
model
i 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?