Sha*_*ean 8 asp.net-mvc automapper
这是我的来源:
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; }
}
Run Code Online (Sandbox Code Playgroud)
这是我的目的地:
public class UserVM
{
public int UserId { get; set; }
public string Address { get; set; }
public string State { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我该如何进行映射?当他们说扁平化是自动的时,普通的创建地图不起作用.
Jef*_*ata 15
如果将目标类属性名称更改为AddressStreet
和AddressState
,则AutoMapper将按照惯例将它们Address.Street
与Address.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
}
Run Code Online (Sandbox Code Playgroud)
或者,您保留目标属性名称并使用自定义成员映射:
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));
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅AutoMapper文档以了解投影和展平.
归档时间: |
|
查看次数: |
5014 次 |
最近记录: |