Следующее сопоставление должно выполнить работу сглаживания вашей модели :
Mapper
.CreateMap<AffiliateComponentType, AffiliateComponentTypeView>()
.ForMember(
dest => dest.ComponentTypeID,
opt => opt.MapFrom(src => src.ComponentType.ComponentTypeID)
)
.ForMember(
dest => dest.Component_Type,
opt => opt.MapFrom(src => src.ComponentType.Component_Type)
)
.ForMember(
dest => dest.ComponentDesc,
opt => opt.MapFrom(src => src.ComponentType.ComponentDesc)
);
, и если вы изменили свою модель вида следующим образом:
[Serializable]
public class AffiliateComponentTypeView
{
public int ComponentTypeComponentTypeID { get; set; }
public string ComponentTypeComponent_Type { get; set; }
public string ComponentTypeComponentDesc { get; set; }
public bool MandatoryComponent { get; set; }
public bool CanBeBookedStandalone { get; set; }
public int PreferenceOrder { get; set; }
}
AutoMapper будет автоматически выполнять выравнивание, используя стандартные соглашения, поэтому все, что вам нужно:
Mapper.CreateMap<AffiliateComponentType, AffiliateComponentTypeView>();
Будет только небольшая проблема со свойством Component_Type
, так как оно конфликтует с соглашением по умолчанию именования AutoMapper, поэтому вам может потребоватьсячтобы переименовать его.
Как только вы определите отображение, вы можете отобразить:
IEnumerable<AffiliateComponentType> source = ...
IEnumerable<AffiliateComponentTypeView> dest = Mapper.Map<IEnumerable<AffiliateComponentType>, IEnumerable<AffiliateComponentTypeView>>(source);