处理同一源对象和目标对象的多个映射

时间:2020-03-03 06:09:00

标签: c# .net automapper

我有Source类和Destination类要映射。目标类是诸如Person之类的通用类,它将用作我的某个类(MainClass)中各个字段(例如父亲,母亲,兄弟等)中的一个字段。我如何将来自父亲的数据从源映射到目标,母亲等

我可以创建

CreateMap<Source, MainClass>()
.ForMember(dest => dest.Mother, m => m.MapFrom(source => source))
.ForMember(dest => dest.Father, m => m.MapFrom(source => source))
.ForMember(dest => dest.Brother, m => m.MapFrom(source => source));

 Mapper.CreateMap<Source, Destination>()  
.ForMember(dest => dest.Name,  m => m.MapFrom(source => source.motherName))
.ForMember(dest => dest.ID,  m => m.MapFrom(source => source.motherId))
.ForMember(dest => dest.Address,  m => m.MapFrom(source => source.motherAddress));

但是我该如何处理父亲,兄弟等人的映射

 Mapper.CreateMap<Source, Destination>()  
.ForMember(dest => dest.Name,  m => m.MapFrom(source => source.FatherName))
.ForMember(dest => dest.ID,  m => m.MapFrom(source => source.FatherId))
.ForMember(dest => dest.Address,  m => m.MapFrom(source => source.FatherAddress));

1 个答案:

答案 0 :(得分:-1)

好,所以这是记事本编辑器中未经测试的代码:D

您可以尝试此操作,并根据需要进行更改。从一开始这是行不通的!

opt.MapFrom(source => SetName(source,“ Mother”)))

location = (GsmCellLocation) telephony.getCellLocation();

String lac = String.valueOf(location.getLac());
String cid = String.valueOf(location.getCid());

也许您需要调试一下才能使其正常运行,但是您可以通过某种方式使其实现。

使用自动映射器可能有更好的解决方案,但是我暂时只有这个想法。

希望这可以帮助您,即使这还没有完成! (对不起,我的时间太少了)

相关问题