AutoMapper를 사용하여 DTO에 내 개체를 매핑하고 있습니다. 내 엔티티 중 일부는 파생 된 엔티티에 의해 무시 될 수있는 가상 속성을가집니다. 필자는 정의 된 기본 클래스를 사용하여 가상 속성을 매핑합니다. 그러나 파생 클래스를 매핑 할 때 AutoMapper는 재정의 된 클래스 대신 가상 속성의 기본 구현을 매핑합니다. 내가 제목을 넣을 때AutoMapper를 사용하여 속성을 재정의하는 파생 클래스 각각에 대해 가상 속성을 명시 적으로 매핑하지 않고 매핑하는 방법은 무엇입니까?
DerivedTypeDto dto = Mapper.Map<DerivedType, DerivedTypeDto>(instance);
: 마지막으로 매핑을
CreateMap<BaseType, BaseTypeDto>()
.ForMember(n => n.Title, p => p.MapFrom(q => q.Title ?? "-"))
.Include<DerivedType, DerivedTypeDto>();
CreateMap<DerivedType, DerivedTypeDto>()
을 그리고 : 매핑 구성을 위해 이제
public class BaseType
{
public virtual string Title
{
get { return string.Empty; }
}
}
public class DerivedType : BaseType
{
public override string Title
{
get { return Name; }
}
public string Name { get; set; }
}
public class BaseTypeDto
{
public string Title { get; set; }
}
public class DerivedTypeDto : BaseTypeDto
{
public string Name { get; set; }
}
을 :
나는 클래스 정의로 시작합니다 파생 된 형식을 구성하는 CreateMap 호출에 매핑하면 작동합니다. 그러나 약 20 개의 파생 된 형식이 있으므로 기본 클래스에 Title 매핑을 구성하고 각 파생 클래스에 대해 반복하지 않아도됩니다.
AutoMapper로 가능합니까?