Nous utilisons Automapper pour mapper nos entités (de EF/base de données) pour afficher les modèles. Notre projet traite d'une entité qui a une relation avec une classe appelée Classification
, qui possède un ensemble de propriétés ayant chacune une propriété DisplayName
.Ajout de votre propre règle de nommage Automapper
Chaque fois que nous avons un modèle de vue comme celui-ci:
public class PersonViewModel{
public string Nationality{get;set;}
public string Gender {get;set;}
public string HairColour {get;set;}
}
Et notre entité peut être (ce n'est pas un exemple réel)
public class Person {
public Classification Classification {get;set;}
public string Name {get;set;}
}
public class Classification {
public Gender Gender {get;set;}
public HumanHairColour HairColour {get;set;}
public Nationality Nationality {get;set;}
}
et chacune des catégories de biens à l'intérieur Classification
a une DisplayName
propriété comme
public class Gender {
public string DisplayName { get; set; }
public int Id { get; set; }
}
public class Nationality {
public string DisplayName { get; set; }
//...
}
public class HumanHairColour {
public string DisplayName { get; set; }
//...
}
Maintenant nous devons manuel Ajoutez des mappages pour chacune des propriétés sur le PersonViewModel
sauf si je veux le nommer ClassificationNationalityDisplayName
ou quelque chose d'idiot comme ça.
Est-il possible d'ajouter une sorte de règle dans notre Automapper
configuration pour lui demander de vérifier la classe Classification
pour les propriétés des noms similaires, puis de mapper à une chaîne utiliser son DisplayName
?
Ne serait-'Mapper.CreateMap(). ForMember (dest => dest.Nationality, opt => opt.MapFrom (src => src.Classification.Nationality.DisplayName)) 'travail? –
Soliah
oui qui le mappe, nous l'utilisons pour le moment, mais je dois le faire pour chaque propriété sur chaque modèle de vue à travers mon application, j'espérais en faire une règle globale – RodH257