gpt4 book ai didi

.net - Automapper:使用 ReverseMap() 和 ForMember() 进行双向映射

转载 作者:行者123 更新时间:2023-12-02 04:51:55 25 4
gpt4 key购买 nike

我有这样的情况,我想将实体映射到 View 模型并返回。我必须使用 ForMember() 显式指定映射,因为它们的属性不共享完全相同的名称。这是我的类(class)的一个简短示例:

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 不匹配。 (整数0。)

有办法让这个工作成功吗? (当两个类的属性具有相同的名称时,它就可以工作。)我是否必须在方法 ForMember() 中设置某种选项?

最佳答案

ReverseMap 返回表示反转映射的 IMappingExpression。一旦调用,后续调用将用于配置 map 的反转。

这是一个例子:

Mapper.CreateMap<CartItemDto, CartItemModel>()
.ForMember(dest => dest.ExtendedCost, opt => opt.Ignore())
.ReverseMap()
.ForMember(dest => dest.Pricing, opt => opt.Ignore())

这将忽略相反方向的定价字段。

关于.net - Automapper:使用 ReverseMap() 和 ForMember() 进行双向映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13490456/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com