// ENTITIES
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public BranchProfile BranchProfile { get;set; }
}
public class BranchProfile
{
public int Id { get; set; }
public string Name { get; set; }
public List<UserBranchSpecialism> Specialisms { get; set; }
}
public class BranchSpecialism
{
public int Id { get; set; }
public string Name { get; set; }
}
public class UserBranchSpecialism
{
public User User { get; set; }
public BranchSpecialism BranchSpecialism { get;set; }
public int BranchSpecialismId { get;set; }
public int UserId { get; set; }
}
// DTOS
public class UserCreateDto
{
public string Name { get;set; }
}
public class BranchProfileDto
{
public string Name { get;set; }
public List<int> BranchSpecialismIds { get;set; }
}
// MAPPING CONFIG
CreateMap<UserCreateDto, User>();
CreateMap<BranchProfileDto, BranchProfile>()
.ForMember(dest => dest.Specialisms,
opt => opt.MapFrom(src => src.BranchSpecialismIds
.Select(id => new UserBranchSpecialism() { BranchSpecialismId = id }).ToList()));