【发布时间】:2012-06-22 08:32:42
【问题描述】:
我正在使用此代码将 DTO 列表映射到其 EF 对应项。我想消除循环,更不用说提取了。后者我可以通过在字典中缓存所有 Employee 对象来完成,但我被困在循环中。
var gridEmps = (List<EmployeeDescriptor>) employeeDescriptorBindingSource.DataSource;
Mapper.CreateMap<EmployeeDescriptor, Employee>();
foreach (var newEmp in gridEmps)
{
var oldEmp = context.Employees.Single(emp => emp.Id == newEmp.Id);
Mapper.Map(newEmp,oldEmp);
}
如上所述,AutoMapper 从我的 DTO 映射到一个已经实例化的实体对象,但是如果我要使用两个列表来尝试这个,就像这样,
var gridEmps = (List<EmployeeDescriptor>) employeeDescriptorBindingSource.DataSource;
var dbEmps = context.Employees.ToList();
Mapper.CreateMap<EmployeeDescriptor, Employee>();
Mapper.Map(gridEmps, dbEmps);
AutoMapper 如何知道如何根据 key 属性将正确的对象从一个列表链接到另一个列表?我知道 key 属性也被映射了,但这肯定会干扰 EF 更改跟踪?
如何告诉 AutoMapper 通过它们的关键属性链接源对象和目标对象?
【问题讨论】:
标签: entity-framework entity-framework-4 entity-framework-4.1 automapper