Мы используем Automapper для отображения наших объектов (из EF/database) для просмотра моделей. Наш проект имеет дело с сущностью, которая имеет отношение к классу с именем Classification
, который имеет кучу свойств, каждый из которых имеет свойство DisplayName
.Добавление собственного правила именования Automapper
Всякий раз, когда у нас есть модель представления, как это:
public class PersonViewModel{
public string Nationality{get;set;}
public string Gender {get;set;}
public string HairColour {get;set;}
}
И наша компания может быть (это не реальный пример)
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;}
}
и каждый из классов свойств внутри Classification
имеет DisplayName
имущество, подобное
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; }
//...
}
Сейчас у нас есть руководство ly добавлять сопоставления для каждого из свойств на PersonViewModel
, если я не хочу называть его ClassificationNationalityDisplayName
или что-то глупое подобное.
Можно ли добавить какую-то правила в нашей Automapper
установки, чтобы спросить его, чтобы проверить Classification
класс для свойств подобных имен, а затем отобразить его в строку использовать его DisplayName
?
Не был бы 'Mapper.CreateMap(). ForMember (dest => dest.Nationality, opt => opt.MapFrom (src => src.Classification.Nationality.DisplayName)) 'work? –
Soliah
Да, это отображает его, мы используем это на данный момент, но я должен сделать это для каждого свойства в каждой модели представления в моем приложении, я надеялся сделать это глобальным правилом – RodH257