[英]AutoMapper - How map complex objects to simpler model
我想要ItineraryModel
class 的 map Origin.CityId
和Origin.StateId
屬性到Itinerary
class 的OriginCityId
和OriginStateId
屬性。
例如: Itinerary itinerary = Mapper.Map<Itinerary>(ItineraryModel);
我的視圖模型
public class ItineraryModel : BaseModel
{
public int OriginCityId { get; set; }
public int OriginStateId { get; set; }
public bool Published { get; set; }
}
我的實體
public class Itinerary : BaseEntity
{
public City Origin { get; set; }
public bool Published { get; set; }
}
我嘗試過的映射
public class MappingProfile : Profile
{
public MappingProfile()
{
CreateMap<ItineraryModel, Itinerary>()
.ForPath(x => x.Origin.CityId, opt => opt.MapFrom(src => src.OriginCityId))
.ForPath(x => x.Origin.StateId, opt => opt.MapFrom(src => src.OriginStateId))
.ReverseMap();
}
}
我也想.ReverseMap()
但找不到正確的語法。
您需要添加兩個映射以映射到Itenerary
CreateMap<ItineraryModel, City>()
.ForMember(city => city.CityId, expression => expression.MapFrom(itineraryModel => itineraryModel.OriginCityId))
.ForMember(city => city.StateId, expression => expression.MapFrom(itineraryModel => itineraryModel.OriginStateId));
CreateMap<ItineraryModel, Itinerary>()
.ForMember(itinerary => itinerary.Origin, expression => expression.MapFrom(itineraryModel => itineraryModel));
同樣,如果需要,您可以手動定義反向映射。
順便說一句,作者不推薦ReverseMap()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.