0

EF 4.3 と MVC 3 を使用しています。

編集アクションで、参照の関連付けが更新されたモデルのインスタンスを受け取ります。モデルを更新しようとすると、次のようになります。

public void Update(Client updatedClient)
{
    var currentClient = _context.Clientes.Include("Address").Include("Phone").FirstOrDefault(c => c.ClientId == updatedClient.ClientId);
    _context.Entry(currentClient).CurrentValues.SetValues(updatedClient);
}

Address と Phone のプロパティを除いて、Client クラスのすべてのプロパティが更新されます。

手動で行う必要がありますか、それとも簡単な方法はありますか?

4

1 に答える 1

1

SetValuesパラメータとして渡すエンティティのスカラー/複雑なプロパティでのみ機能します。ナビゲーション プロパティでは機能せず、オブジェクト グラフに深く入り込むこともありません。

リレーションに加えられた変更を追跡updatedClientsし、グラフ内のすべてのエンティティの状態を手動で設定するか、currentClientand (およびそれらのすべてのリレーション) を比較してそれに応じて (再び手動で)updateClient更新する必要があります。currentClientこの問題の詳細な説明はこちらです。

于 2012-04-11T08:25:03.673 に答える