将模型转换为ViewModel

时间:2013-02-17 14:03:06

标签: c# mvvm automapper

这是我的分类模型:

public class Category :IAggregateRoot
    {
        public Guid Id { get; set; }
        public string Name { get; set; }

    }

这是我的CategoryViewModel:

 public class CategoryViewModel
    {
        public Guid  CategoryId { get; set; }
        public string Name { get; set; }
    }

我想用Automapper将此类别转换为CategoryViewModel,如果我将CategoryViewModel中的CategoryId更改为Id,则可以!但在这种情况下,我没有在我的控制器中获得Guid值!我怎么能把这些投射到Guid对方?  这也是我的mapper类:

public static CategoryViewModel ConvertToCategoryViewModel(this Category category)
        {
            return Mapper.Map<Category, CategoryViewModel>(category);
        }

1 个答案:

答案 0 :(得分:3)

在某些时候,您可能正在通过调用

来设置自动映射器映射
Mapper.CreateMap<CategoryModel, CategoryViewModel>();

在CreateMap之后,调用

.ForMember(m=>m.CategoryId, c=>c.mapfrom(d=>d.Id)).

这告诉自动映射器从Id属性映射categoryId属性。

编辑:完整代码看起来像:

// in app start
Mapper.CreateMap<CategoryModel, CategoryViewModel>()
    .ForMember(cvm => cvm.CategoryId, c => c.MapFrom(cm => cm.Id));

// in you mapping method:
return Mapper.Map<CategoryModel, CategoryViewModel>(categoryModel);