編集後のアクションでナビゲーション プロパティにアクセスする必要がありますが、データベースを呼び出してモデルを「再更新」する現在の方法は、最善の方法ではないようです。より良い解決策はありますか?
public class Foo
{
public int Id { get; set; }
public string SomeProp { get; set; }
}
public class Bar
{
public int Id { get; set; }
public int FooId { get; set; }
public Foo Foo { get; set; }
}
[HttpPost]
public ActionResult Edit(Bar bar)
{
// Here bar.FooId is set but bar.Foo is null as bar is not a Dynamic Proxy.
...
bar = db.Bar.Find(bar.id);
TryUpdateModel(bar);
return View(bar); // Here bar.Foo is set.
}
私が見つけた別の方法は次のとおりです。
db.Bar.Attach(bar);
db.Entity<Bar>(bar).Reference(b => b.Foo).Load();
ただし、必要なすべてのナビゲーション プロパティへの参照を作成する必要があります。