如果使用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映射到实体?