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