出色地?例如,我经常这样做:
public class PersonEditModel: MappedViewModel<Person>
{
static PersonEditModel()
{
Mapper.CreateMap<Person, PersonEditModel>().Bidirectional();
}
[HiddenInput(DisplayValue = false)]
public int Id { get; set; }
public string Name { get; set; }
public LanguageCompetencyIndexModel Languages { get; set; }
}
我的核心 MVC 加载项集中藏有一个小帮手:
public static void Bidirectional<TSource, TDestination>(this IMappingExpression<TSource, TDestination> expression)
{
Mapper.CreateMap<TDestination, TSource>();
}
它节省了创建第二个映射,非常适合简单的捕获/显示场景。
现在,我可以将这个视图模型放在一个库中并在任何地方使用它,而不是在其他地方、在某个地方或某个地方创建地图App_Start
,而不必记住为其添加映射。