Prosty przykład automappera

Trudno mi zrozumieć, jak mapować pewne obiekty. Odpowiedz na kilka pytań dotyczących tego prostego przykładu.

Przykładowy kod

class User
{
    private int id;
    private string name;
}

class Group
{
    private int id;
    private string name;
    private List<User> users;
}

[DataContract]
public class UserDto
{
    [DataMember]
    public int id { get; set; }
    [DataMember]
    public string name{ get; set; }      
}

[DataContract]
public class GroupDto
{
    [DataMember]
    public int id { get; set; }
    [DataMember]
    public string name{ get; set; }
    [DataMember]
    public List<User> Users { get; set; }      
}

Mapery

Mapper.CreateMap<User, UserDto>();
Mapper.CreateMap<UserDto, User>();

Mapper.CreateMap<Group, GroupDto>();
Mapper.CreateMap<GroupDto, Group>();

Podczas mapowaniaGroup doGroupDto, musisz mapowaćUser doUserDto wewnętrznie, ponieważList<User> wGroup składa się z niezmapowanegoUsers? Jeśli tak, jak to zrobić? Moim gościem jest

Mapper.CreateMap<Group, GroupDto>()
    .ForMember(g => g.id, opt => opt.Ignore());
    .ForMember(g => g.name, opt => opt.Ignore());
    .ForMember(g => g.Users, opt => opt.MapFrom(u => Mapper.Map<Group, UserDto>(u)))

Czy to jest poprawne?

questionAnswers(2)

yourAnswerToTheQuestion