1

这是我的类别模型:

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 将此 Category 转换为 CategoryViewModel ,如果我将 CategoryViewModel 中的 CategoryId 更改为 Id ,就可以了!但在这种情况下,我的控制器中没有得到 Guid 值!我怎样才能将这些转换为相互指导?这也是我的映射器类:

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

1 回答 1

3

在某些时候,您可能正在通过调用来设置自动映射器映射

Mapper.CreateMap<CategoryModel, CategoryViewModel>();

在 CreateMap 之后,调用

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

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

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

// 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);
于 2013-02-17T14:08:55.450 回答