【发布时间】:2013-09-14 00:35:15
【问题描述】:
我想使用 AutoMapper 导入数据。
我的目标类都继承自基类 Entity,该基类定义了一些源中不存在的属性 (CreatedOn, CreatedBy, ModifiedOn, ModifiedBy)
假设我有一个源类 Unit:
public class UnitOld
{
public int Id { get; set; }
public string Name { get; set; }
}
这是我的目标类单元:
public class Unit : Entity
{
public Guid UnitId { get; set; }
public string UnitName { get; set; }
}
public class Entity
{
public string CreatedOn { get; set; }
public string CreatedBy { get; set; }
public string ModifiedOn { get; set; }
public string ModifiedBy { get; set; }
}
现在要创建我的映射,我必须编写:
Mapper.CreateMap<UnitOld, Unit>()
.ForMember(d => d.UnitName, o => o.MapFrom(s => s.Name))
.ForMember(d => d.UnitId , o => o.Ignore())
.ForMember(d => d.CreatedOn, o => o.Ignore())
.ForMember(d => d.CreatedBy, o => o.Ignore())
.ForMember(d => d.ModifiedOn, o => o.Ignore())
.ForMember(d => d.ModifiedBy, o => o.Ignore());
效果很好,问题是我有多个从实体继承的类,我不想重复自己。是否可以告诉 AutoMapper For every class that interits from entity ignore the properties ...?
【问题讨论】:
-
想知道使用对象作为源和实体作为目标是否可以工作......
Mapper.CreateMap<object, Entity>().ForMember(dest=>dest.CreatedOn, opt=>opt.Ignore());猜不透。
标签: c# automapper