2016-10-24 2 views
0

У меня есть класс:Карта объекта на объект с суб список

public class LearnerEvent 
{ 
    public string SubjectField { get; set; } 

    public string GradeField { get; set; } 

    public DateTime AchievementAwardDateField { get; set; } 

    public string QualificationTypeField { get; set; } 
} 

я хотел бы, чтобы отобразить это в DTO:

public class LearnerEventDto 
{ 
    public List<LearnerEventInfoDto> LearnerEventInfo { get; set; } 

    public string QualificationTypeField { get; set; } 
} 

который имеет суб-DTO:

public class LearnerEventInfoDto 
{ 
    public string SubjectField { get; set; } 

    public string GradeField { get; set; } 

    public DateTime AchievementAwardDateField { get; set; } 
} 

Целью является то, что я могу отображать объекты в группах, т.е. группировка по типу награды.

Я знаю, что мне, вероятно, нужно написать собственный сопоставитель (используя automapper), но я просто не уверен, как это сделать.

ответ

0

Отображение, которое вы хотите, будет означать, что каждый объект InfoDTO в этом списке должен иметь тот же тип QualificationType, что означает, что вы уже отфильтровали ваши LearnerEvents до определенного типа. Не должно быть необходимости писать QualificationType в «список DTO».

Я предполагаю, что вы работаете с DTO, потому что вы не хотите распространять класс LearnerEvent или потому, что хотите отфильтровать определенную информацию, которую вы не указали в своем примере, так что бы я сделал создает классы LearnerEventDTO с полями из LearnerEvent, которые вы хотите передать, помещает их в список и отправляет их туда, где вы хотите.

Другая сторона может определить квалификационный тип, просматривая его на любом элементе, и в любом случае у предметов должен быть одинаковый тип QualificationType.

+0

Я изначально был так, как вы предлагаете, но мой менеджер сказал, что он хочет, чтобы вся сортировка была сделана, прежде чем она вернется в переднюю часть. – user312687

+0

Сортировка Я имею в виду группировку по квалификации – user312687

+0

Но они уже сгруппированы. Если вы пишете QualificationType в ListDTO, то любой ListItemDTO в этом ListDTO должен иметь точный QualficiationType или иначе ваш контракт недействителен. Таким образом, вы уже сгруппировали свои события. – wickermoon