어떻게 오토 데스크를 사용하여 콘크리트 객체의 단일 객체에 객체 컬렉션을 매핑 할 수 있습니까?오토 맵 (Automapper)지도 ICollection <T>을 단일 콘크리트 객체
샘플 :
모델 :
public class SystemOptionsModel
{
public string OptionID { get; set; }
public string OptionValue { get; set; }
}
DTO :
CreateMap<SystemOptionsModel, SystemOptionsDto>()
.ForMember(dest => dest.Deliverymode, o =>
{
o.Condition((src) => { return src.OptionID.Trim().ToLower().Equals("someString"); });
o.MapFrom(srs => (Deliverymode)Enum.Parse(typeof(Deliverymode), srs.OptionValue.Trim()));
});
:
public class SystemOptionsDto
{
public Deliverymode? Deliverymode { get; set; }
}
나는 다음과 같은 매핑 구성 하나 SystemOptionsDto에 SystemOptionsModel의 ICollection에 매핑하는 시도
결과적으로 소스 컬렉션의 각 항목에 대해 하나의 항목이있는 DTO 목록을 얻습니다.
CreateMap<SystemOptionsModel, SystemOptionsDto>()
.ForMember(dest => dest.Deliverymode, o =>
{
o.MapFrom(src => src.OptionID.Trim().ToLower().Equals("someString") ? (Deliverymode?)Enum.Parse(typeof(Deliverymode), src.OptionValue.Trim()) : null);
});
결과는 또한 SystemOptionsDto의 목록이 아니라 하나의 SystemOptionsDto입니다 :
나는이 시도했다.
이'src.OptionID.Trim() ToLower는() 같음 (이하 "someString")'항상 false가 될 것입니다. ;) –
물론, 감독 :) ... – macostobu