Kedua entitas tersebut adalah hubungan satu-ke-banyak (dibangun dengan kode pertama fasih 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; }
}
Di pengontrol WebApi saya, saya memiliki tindakan untuk membuat entitas induk (yang berfungsi dengan baik) dan memperbarui entitas induk (yang memiliki beberapa masalah). Tindakan pembaruan terlihat seperti:
public void Update(UpdateParentModel model)
{
//what should be done here?
}
Saat ini saya punya dua ide:
Dapatkan entitas induk terlacak yang dinamai
existing
olehmodel.Id
, dan tetapkan nilaimodel
satu per satu ke entitas tersebut. Ini kedengarannya bodoh. Danmodel.Children
saya tidak tahu anak mana yang baru, anak mana yang dimodifikasi (atau bahkan dihapus).Buat entitas induk baru melalui
model
, dan lampirkan ke DbContext dan simpan. Tetapi bagaimana DbContext bisa mengetahui keadaan anak-anak (baru tambah / hapus / modifikasi)?
Apa cara yang benar dalam mengimplementasikan fitur ini?