相关疑难解决方法(0)

使用Automapper忽略子类映射中的基类属性的问题

我有一个场景,我想忽略基类中定义的类的一些属性.

我有这样的初始映射

   Mapper.CreateMap<Node, NodeDto>()
                .Include<Place, PlaceDto>()
                .Include<Asset, AssetDto>();
Run Code Online (Sandbox Code Playgroud)

然后我更像这样定制它来忽略基类NodeDto中定义的一个属性

 Mapper.CreateMap<Node, NodeDto>()
                .ForMember(dest => dest.ChildNodes, opt => opt.Ignore());
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试映射Place Place to PlaceDto或Asset to AssetDto时,不会忽略ChildNodes属性.所以我最终做了这样的事情

  Mapper.CreateMap<Node, NodeDto>()
                .ForMember(dest => dest.ChildNodes, opt => opt.Ignore());
            Mapper.CreateMap<Place, PlaceDto>()
                .ForMember(dest => dest.ChildNodes, opt => opt.Ignore());
            Mapper.CreateMap<Asset, AssetDto>()
                .ForMember(dest => dest.ChildNodes, opt => opt.Ignore());
Run Code Online (Sandbox Code Playgroud)

由于我有很多NodeDto的子类,上面的过程很麻烦,我想知道是否有更好的方法?

谢谢Nabeel

automapper

5
推荐指数
2
解决办法
1781
查看次数

标签 统计

automapper ×1