AutoMapper のようなツールを使用して DTO データをエンティティに移動する場合、Entity Framework はオブジェクトに加えられた変更を検出するのにどのくらい適していますか?
例えば
var existing = dbcontext.First(e => e.Id = dto.Id);
Mapper.Map(dto,existing);
これは、単一のオブジェクトまたは非常に単純な例ではうまく機能することを知っています。
しかし、実際のグラフがある場合、実際にどれだけうまく機能するのでしょうか?
例えば
次のようなデータがあるとします。
dtoOrder.detail[0].product = getSomeProduct();
var existing = dbcontext.First(e => e.Id = dtoOrder.Id);
Mapper.Map(dtoOrder,existing);
EF は、detail [0] に割り当てられた新製品が新しいオブジェクトであると考えるでしょうか? AutoMapper はそのエンティティを取得する場所を認識していないためです。
では、AutoMapper を使用して、単純な例だけではなく、実際のオブジェクト グラフを操作するときに、DTO からエンティティにデータを安全に双方向にマップすることは可能ですか?