我有以下两个基本视图模型类,我所有的视图模型(曾经)都来自:
public class MappedViewModel<TEntity>: ViewModel
{
public virtual void MapFromEntity(TEntity entity)
{
Mapper.Map(entity, this, typeof (TEntity), GetType());
}
}
public class IndexModel<TIndexItem, TEntity> : ViewModel
where TIndexItem : MappedViewModel<TEntity>, new()
where TEntity : new()
{
public List<TIndexItem> Items { get; set; }
public virtual void MapFromEntityList(IEnumerable<TEntity> entityList)
{
Items = Mapper.Map<IEnumerable<TEntity>, List<TIndexItem>>(entityList);
}
}
在我知道 AutoMapper 可以自己做所有列表之前,就像上面的一样MapFromEntityList
,我曾经运行一个循环并为每个列表项调用MapFromEntity
一个新实例。MappedViewModel
现在我失去了重写的机会,只是MapFromEntity
因为 AutoMapper 不使用它,而且我还必须重写MapFromEntityList
回显式循环来实现这一点。
在我的应用启动中,我使用如下映射配置:
Mapper.CreateMap<ClientCourse, ClientCourseIndexItem>();
我如何告诉 AutoMapper 总是调用MapFromEntity
例如 every ClientCourseIndexIte
?或者,有没有更好的方法来完成这一切?
顺便说一句,我仍然经常MapFromEntity
在编辑模型中使用显式调用,而不是索引模型。