如果使用 AutoMapper 之类的工具将 DTO 数据移动到实体中,实体框架在检测对对象所做的更改方面有多好?
例如
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 会认为分配给详细信息 [0] 的新产品是一个新对象?因为 AutoMapper 不知道从哪里获取该实体。
那么,在使用真实对象图而不是仅使用简单示例时,是否可以使用 AutoMapper 安全地将数据从 DTO 映射到实体?