忽略AutoMapper上的嵌套属性

时间:2018-02-22 18:12:04

标签: c# automapper

我的ViewModel有一系列相关的实体:

Store.Package.Item

当我从viewmodel映射到实体时,我试图忽略路径上的最后一个Item元素。那是我的映射:

  CreateMap<Store, StoreViewModel>().ReverseMap().ForPath(s => s.Package.Item, opt => opt.Ignore());

问题是整个Package元素被忽略了,但我只需要忽略Item属性。

有人可以帮我吗?

此致

2 个答案:

答案 0 :(得分:1)

您可以将Package类型中的另一个映射添加到自身中,而忽略item属性

CreateMap<Store, StoreViewModel>().ReverseMap();
CreateMap<*PackageClass*, *PackageClass*>().ReverseMap()
.ForMember(s => s.Item, opt => opt.Ignore());

PackageClass 是Store.Package属性的类型

答案 1 :(得分:0)

你可以这样做:¨

Mapper.Initialize(c=>   
    {
        c.CreateMap<Store, StoreViewModel>().ReverseMap();//.ForPath(s => s.Package.Item, opt => opt.Ignore()));
        c.CreateMap<Package, PackageViewModel>().ReverseMap().ForPath(s=> s.Item,opt=> opt.Ignore());       
    });