我正在使用Automapper将一个对象属性复制到其他对象,稍后将使用EF在数据库中更新。
问题是如何告诉Automapper复制每个属性但忽略特定属性(在这种情况下它将是Id)。我是AutoMapper的新手,刚刚完成了这段代码。我在项目中没有其他配置或使用AutoMap。
Mapper.Map(lead, existingLead);
我已在此处下载了AutoMapper表单https://github.com/AutoMapper/AutoMapper
答案 0 :(得分:11)
在Mapper.CreateMap<Type1, Type2>()
上,您可以使用
.ForSourceMember(x => x.Id, opt => opt.Ignore())
或
.ForMember(x => x.Id, opt => opt.Ignore())
答案 1 :(得分:1)
我使用这种扩展方法:
public static IMappingExpression<TSource, TDestination> IgnoreMember<TSource, TDestination>(
this IMappingExpression<TSource, TDestination> map, Expression<Func<TDestination, object>> selector)
{
map.ForMember(selector, config => config.Ignore());
return map;
}
我就像这样使用它
Mapper.CreateMap<MyType1, MyType2>().IgnoreMember(m => m.PropertyName);
希望有所帮助。