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; } }這是我的目的地:
public class UserVM { public int UserId { get; set; } public string Address { get; set; } public string State { get; set; } }如何進行映射?當他們說展平是自動的時,正常的創建地圖不起作用。
如果您將目標類屬性名稱更改為
AddressStreetandAddressState,AutoMapper 將按照慣例將它們Address.Street與源匹配到 andAddress.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));