0

私は 2 つのテーブルと 1 対多の関係を持ってParentChildます。親を作成し、それに子を追加します。次に、それを作成するか (新しい親の場合)、または更新します (既に存在する場合)。作成すると、すべてが正常に機能します。ただし、更新すると、子は更新されません。

using (var Repo = new ParentRepository(context))
{
   var key = new AnnualFormKey(prnt.Year, prnt.UserId);
   if (Repo.Retrieve(key) == null)
   {
       prnt.CreatedDate = DateTime.Now;
       prnt.CreatedId = 1;
       Repo.Create(prnt);
       Repo.SaveChanges();   //creates parent and children
   }
   else
   {
       prnt.UpdatedDate = DateTime.Now;
       prnt.UpdatedId = 2;
       Repo.Update(prnt);
       Repo.SaveChanges();   //updates parent but not children
   }
}

(注: 更新呼び出し_context.Entry(orginal).CurrentValues.SetValues(entity)

これは私のコンテキストの問題ですか、それとも何か他のことをする必要がありますか?

4

2 に答える 2

-1

さて、これをさらに詳しく調べたところ、Entity Framework は実際には複雑なエンティティを更新しないことがわかりました (つまり、子を保存しません)。複雑な回避策はたくさんありますが、私のものは非常に簡単でした。既存のエンティティを削除し、再度作成しました (更新されたバージョンを使用)。

于 2012-08-07T21:05:20.077 に答える