До AutoMapper 8.0 я использовал этот код, чтобы найти сопоставление свойств по строке, например: модель сущности имеет свойство с именем "currency_id", а DTO имеет свойство с именем "currency".Я определил двунаправленное отображение в AutoMapper, и я использовал этот код для поиска свойства источника / цели relat
public static string GetDestinationPropertyFor<TSrc, TDst>(IMapper IMapper, string sourceProperty)
{
var mapper = AutoMapper.IMapper.ConfigurationProvider;
// TSrc = source generic type
// TDst = destination generic type
var map = mapper.FindTypeMapFor<TSrc, TDst>();
var propertyMap = map.GetPropertyMaps()
.FirstOrDefault(pm =>
pm.SourceMember.Name == sourceProperty
);
return propertyMap.DestinationProperty.Name;
}
В профиле AutoMapper:
this.CreateMap<EntityModels.contact, DTO.contact>()
.ForMember(m => m.currency, src => src.MapFrom(f => f.currency_id))
;
this.CreateMap<DTO.contact, EntityModels.contact>()
.ForMember(m => m.currency_id, src => src.MapFrom(f => f.currency))
;
Когда я назвал свой метод какthis:
var _dboField = GetDestinationPropertyFor<DTO.contact, EntityModels.contact>(this.mapper, "currency");
Console.WriteLine(_dboField);
// output should be "currency_id"
После обновления до AutoMapper 8.0 я получил эту ошибку при сборке:
'TypeMap' не содержит определения для GetPropertyMaps и не принимает доступный метод расширения GetPropertyMapsпервый аргумент типа 'TypeMap' может быть найден (вам не хватает директивы using или ссылки на сборку?)
Что такое замены для GetPropertyMaps в AutoMapper 8.0?
Спасибо!