我有一种情况,我想将一个实体映射到一个视图模型并返回。我必须明确指定映射,ForMember()
因为它们的属性不共享完全相同的名称。这是我的班级样子的简短示例:
public class PartTwo {
public int Integer { get; set; }
}
public class PartTwoViewModel {
public int PartInteger { get; set; }
}
我想以这种方式使用它们:
Mapper.CreateMap<PartTwo, PartTwoViewModel>()
.ForMember(dst => dst.PartInteger, opt => opt.MapFrom(src => src.Integer))
.ReverseMap();
var partTwoViewModel = new PartTwoViewModel() { PartInteger = 42 };
var partTwo = Mapper.Map<PartTwoViewModel, PartTwo>(partTwoViewModel);
Assert.AreEqual(partTwoViewModel.PartInteger, partTwo.Integer);
不过,这并不属性匹配PartInteger
到Integer
。(Integer
是0
。)
有没有办法使这项工作?(当两个类的属性具有相同的名称时,它就会起作用。)我是否必须在方法中设置某种选项ForMember()
?
ReverseMap
您的方式,所以效果很好。这个问题已经过时了。