最佳答案
我有一个例子,我想把一个实体映射到一个视图模型,然后返回。我必须用 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()
中设置某种选项吗?