n 層のシナリオでは、データ層はどのように EF 4.3 のオブジェクトの List プロパティを更新することになっていますか?
このクラスがあるとしましょう:
public class Foo
{
public int Id { get; set; }
public string Name { get; set; }
public List<Bar> Bars { get; set; }
}
これは、ID と名前の保存/更新に関してはうまく機能しますが、Bars プロパティは無視されます。
protected void SaveChanges(Foo foo)
{
this.Database.Entry<Foo>(foo).State = GetState(foo);
this.Database.SaveChanges();
}
元のコンテキスト (Foo を取得したもの) がメモリ内にないため、データ レイヤーは Bars プロパティへの更新の保存をどのように処理する必要がありますか? どのバー項目が削除され、どの項目が更新され、どの項目が追加されたかを EF はどのように認識するのでしょうか?
注: 各 Bar アイテムをループして元のアイテムと比較することもできますが、EF はそのようには機能しないと思います。それは退屈で間違っているようです。