1

出色地?例如,我经常这样做:

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,而不必记住为其添加映射。

4

1 回答 1

1

如果要重用映射定义,请将它们放在profile中。它从您的视图模型中删除了 Automapper 依赖项,并允许您轻松集中映射。

于 2013-03-26T18:26:08.377 回答