我有这种情况,我想将实体映射到视图模型并返回。我必须使用ForMember()明确指定映射,因为它们的属性不共享完全相同的名称。这里是我的课怎么看起来像一个简单的例子:Automapper:使用ReverseMap()和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为整型。 (整数为0)
有没有办法使这项工作? (当两个类的属性具有相同的名称时)。我是否必须在ForMember()方法中设置某种选项?
是的,这是有效的。我希望我不必定义反向映射,因为我有很多通过ForMember()映射的属性。 – toni
以下是示例:https://dotnetfiddle.net/0x8csL – Sergey