2つのエンティティは1対多の関係です(コードが最初に流れる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; }
}
私のWebApiコントローラーでは、親エンティティを作成し(これは正常に機能しています)、親エンティティを更新します(問題があります)。更新アクションは次のようになります。
public void Update(UpdateParentModel model)
{
//what should be done here?
}
現在2つのアイデアがあります。
で指定
existing
された追跡対象の親エンティティを取得し、1つずつエンティティmodel.Id
に値を割り当てますmodel
。これは愚かに聞こえます。そして、model.Children
どの子が新しいのか、どの子が変更されている(または削除されている)のかわかりません。を介して新しい親エンティティを作成
model
し、DbContextにアタッチして保存します。しかし、DbContextはどのようにして子の状態(新しい追加/削除/変更)を知ることができますか?
この機能を実装する正しい方法は何ですか?