1

最初にEf4コードを使用していて、子を持つ親テーブルがあります

親を更新すると、子が更新されず、新しいエントリが作成されます(古いエントリは削除されません)。

私の更新方法は次のようになります。

IEFRepository<Parent> repo = new EFRepository<Parent>( context );
var parent = repo.GetSingle(m => m.parentId.Equals(updatedParent.parentId));

parent.Child = updatedParent.Child;  //this is creating a new record in the db, not overwriting the existing

repo.Update(parent);

以下のようにupdateメソッドで子プロパティを分割すると、重複エントリの問題は解決されますが、他の場所で他の問題が発生します(主にnullエントリの検証で)。

parent.Child.property = updatedParent.Child.property;

また、UpdateChild()を作成し、それをUpdateParent()から呼び出してみましたが、基本的に、個々の子プロパティを分割した場合と同じ結果が得られました。

この動作を制御し、EFに新しいエンティティを作成する代わりに、子エンティティを上書きさせる適切な方法はありますか?

4

1 に答える 1

0

コンテキスト内に子のリストを用意し、不要になったときにコンテキストから古い子を削除します。

于 2012-05-18T21:10:17.740 に答える