AutoMapper问题

时间:2011-03-03 00:05:01

标签: asp.net-mvc automapper

我有几个关于AutoMapper的问题。

1)我有一个名为Category的类和一个名为CategoryViewModel的视图模型。我是否需要为每个方向创建映射?

Mapper.CreateMap(类别,CategoryViewModel)
Mapper.CreateMap(Of CategoryViewModel,Category)

2)如何映射集合?我有一个CategoryListViewModel,它具有IEnumberable(Of CategoryViewModel)的单个属性。我想填充那些返回IQueryable(Of Category)的服务?

谢谢!

1 个答案:

答案 0 :(得分:4)

  1. 您只需要一次定义映射。 AutoMapper足够聪明,可以弄清楚如何从两个方向进行映射

  2. 一旦您通过调用.CreateMap()注册了类型映射,AutoMapper就足够了解如何映射到集合。因此,您不必为映射类型的集合创建类型映射。 AutoMapper将遍历您的集合并映射其中包含的每个对象。

  3. 要将AutoMapper映射到列表,只需调用List<TypeTo> destination = Mapper.Map<List<TypeFrom>, List<TypeTo>)(sourcObject);

    即可

    在VB中可能看起来像以下源代码,我通过C#转换为VB.NET转换器:

    Mapper.Map<List<TypeFrom>, List<TypeTo>)(sourcObject);