問題
ないこれを行うための正しい方法がわから...私は単純なクラスを持っています3プロジェクトでは、イベントの説明を編集し、ドロップダウンリストから前のイベントを(オプションで)選択するためのフォームがあります。フォームは、アクションに提出して、MVC 3といつものように、自動的にEvent
にマップされます。EF 4.1 POCO()
[HttpPost]
public ActionResult SaveEvent(Event myEvent)
{
if (ModelState.IsValid)
{
Db.Entry(myEvent).State = EntityState.Modified;
// do some additional checks
Db.SaveChanges();
}
}
私は私が私のエンティティを保存する前にPreviousEvent
へのアクセスを必要とするいくつかの追加検証を行うにしたいと思います。ただし、上記のコードでナビゲーションプロパティにアクセスすると、ナビゲーションプロパティは常にnull
になります。これは意味があります - フォームは私のPOCOクラスEvent
に直接マップされ、EFによって作成されたプロキシにはマッピングされません。
質問
は、EFは、そのナビゲーションプロパティをロードすることに助けることができるように、そのプロキシの私の修正Event
を交換する方法はありますか?私は何ができる:
Db.Entry(myEvent).Reference(e => e.PreviousEvent).Load();
// do some checking on myEvent.PreviousEvent
...しかし、すべてのナビゲーションプロパティをロードするこの方法は、世俗的なようです(図示よりも、このクラスの多くのがあります)、と私はEFがこれを行うためのより良い方法を持っている願っています。それは確かにそれですか?
あなたは星です、これは私がそこにあることを望んでいたのと同じように見えます!今私はイベントのプロパティにダイナミックプロキシのプロパティをバインドする普遍的な方法を見つける必要があります:-) – Dav
別のタスクでは、ちょうど '' TryUpdateModel''に出くわしました。法案はうまくいきます。しかし、私が '' Event eventDb = Db.Events.Create();を実行すると、 TryUpdateModel(eventDb); ''、 '' eventDb.PreviousEvent''はまだ型が動的プロキシである場合でもnullです。それはなぜですか? – Dav
イベントをコンテキストに添付しましたか? –