gpt4 book ai didi

asp.net-mvc - Automapper 从嵌套类映射到单个(展平)

转载 作者:行者123 更新时间:2023-12-04 05:41:53 25 4
gpt4 key购买 nike

这是我的来源:

public class User
{
public int UserId { get; set; }

public Address Address { get; set; }
}

public class Address
{
public string Address { get; set; }
public string State {get; set; }
}

这是我的目的地:
public class UserVM
{
public int UserId { get; set; }

public string Address { get; set; }
public string State { get; set; }
}

我如何进行映射?当他们说展平是自动的时,正常的创建贴图不起作用。

最佳答案

如果您将目标类属性名称更改为 AddressStreetAddressState , 按照惯例,AutoMapper 会将它们匹配到 Address.StreetAddress.State在源头上。

public class UserVM
{
public int UserId { get; set; }

public string AddressStreet { get; set; } // User.Address.Street
public string AddressState { get; set; } // User.Address.State
}

或者,您保留目标属性名称并使用自定义成员映射:
Mapper.CreateMap<User, UserVM>()
.ForMember(dest => dest.Street, opt => opt.MapFrom(src => src.Address.Street))
.ForMember(dest => dest.State, opt => opt.MapFrom(src => src.Address.State));

参见 AutoMapper 文档 ProjectionFlattening想要查询更多的信息。

关于asp.net-mvc - Automapper 从嵌套类映射到单个(展平),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8058783/

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