J'essaie de créer un mappage entre une entité LLBLGen et un DTO à l'aide d'AutoMapper.Mapper l'entité LLBLGen à DTO
regards Mon DTO comme suit:
// Parent
public int Id { get; set; }
public List<Child> Children{ get; set; } // One to Many
// Child
public int Id { get; set; }
public int Parent { get; set; } // Foreign key to parent Id
Le ParentEntity contient un ChildCollection avec le même nom que la liste DTO et un identifiant (avec d'autres domaines de LLBL qui doivent être ignorés). Ainsi, lorsque ParentEntity est mappé sur le DTO parent, il doit également mapper ChildCollection à une liste d'enfants.
C'est ce que je suis arrivé à ce jour:
ParentEntity parentEntity = new ParentEntity(id);
AutoMapper.Mapper.CreateMap<ParentEntity, Parent>();
AutoMapper.Mapper.CreateMap<ChildCollection, List<Child>>();
var parent = AutoMapper.Mapper.Map<Parent>(parentEntity);
Il en résulte l'ID se cartographiés mais la liste a compter 0.
Comment puis-je le faire fonctionner?
MISE À JOUR:
Essayé la même chose que ma précédente tentative, mais la cartographie manuellement la liste des enfants entraîne également le même problème: Id se cartographié, mais la liste est vide.
Mapper.CreateMap<ParentEntity, Parent>()
.ForMember(dto => dto.Children, opt => opt.MapFrom(m => m.Children));
S'il vous plaît montrer la classe 'ChildCollection'. Quel est le type de sa propriété 'List'? Je pense qu'il est préférable de fournir le code source pertinent complet de vos entités et DTO pour résoudre pourquoi le mappage ne fonctionne pas. –
Les DTO sont déjà montrés dans ma question. ChildCollection contient ChildEntities qui contient les mêmes champs que le DTO et beaucoup plus de ressources LLBL. Coller toutes les ressources de ces collections/entités ne sera pas utile et trop. Si vous avez travaillé avec LLBL auparavant, vous devriez avoir une idée de ce que contiennent ces classes. – Sam