9
votes

La liste de cartographie automapper devient 0

Je mappe une liste à une autre liste avec Comtableapper, mais il semble que mes articles ne soient pas copiés.

Voici mon code: P>

public class Role
{
    public int RoleId { get; set; }
    public string RoleName { get; set; }
}


9 commentaires

Je suppose que vous avez vérifié que les rôles ont des données?


@Derek Beattie, oui, roles.count est 2. mappedrole.count est devenu 0.


N'aurait pas d'importance mais coller l'affirmation après le .creature mais avant le .map


@Derek Beattie, rien ne s'est passé. L'affirmation n'a pas lancé. Je pense que je devrais probablement boucler et avoir une carte automapper la cartographier 1 par 1.


Poster les deux types de rôle.


Étrange, j'utilise je suis pour le faire tout le temps ... pensant.


Essayez d'utiliser mapper.createmap ();


@Muhammad Adeel Zahid qui fonctionne !! Merci.


Stackoverflow.com/questions/5589471/...


3 Réponses :


39
votes

Ne créez pas de cartes entre les listes et le tableau, uniquement entre les types:

var mappedRole = Mapper.Map<List<Domain.Role>, List<Role>>(roles);


1 commentaires

J'exprime un comportement étrange lors de l'utilisation de la Fadiatrice. Pour une raison quelconque, lors de la mappage entre deux listes, le premier élément semble être répété N fois dans la liste de destination. J'ai créé un article ici: Stackoverflow.com/Questtions/17268362/... Demander à ce sujet. Je pense que j'utilise l'automapper en fonction des spécifications, bien que je suis un débutant. S'il vous plaît examiner et laissez-moi savoir vos pensées.



0
votes

Dans mon cas, j'ai eu la mappage de type (parent) configuré correctement mais je n'ai pas ajouté les mappages pour les enregistrements d'enfants, donc pour cela:

cfg.CreateMap<FieldGroup, FieldGroupDTO>();
cfg.CreateMap<Field, FieldDTO>(); << was missing


0 commentaires

0
votes

Évitez d'ajouter des collections dans votre configuration du mapper. Assurez-vous d'ajouter tous les types (classes). J'ai eu des erreurs lorsque les collections n'étaient pas dans la configuration, mais c'était parce que tous les types n'étaient pas inclus. Peu trompeur, mais c'est là que réside le problème. Point est, supprimez toutes les collections de Maper Config et ajoutez toutes les classes uniquement. Ajouter des collections lors de la transformation réelle, c'est-à-dire. Appelez sur mapper.map.

        var config = new MapperConfiguration(cfg =>
        {
            cfg.CreateMap<Infrastructure.Entities.Pet, Domain.Model.Pet>();
            cfg.CreateMap<Infrastructure.Entities.Owner, Domain.Model.Owner>().ReverseMap();
        });

        var mapper = config.CreateMapper();
        var domainPetOwners = mapper.Map<List<Domain.Model.Owner>>(repoPetOwners);


0 commentaires