Вы можете использовать отражение, чтобы получить свойство по имени:
private R GetProperty<T, R>(T obj, string propertyName)
{
PropertyInfo pi = obj.GetType().GetProperty(propertyName);
return (R)pi.GetValue(obj, null);
}
Что бы вы использовали в AutoMapper, как это:
.ForMember( dest => dest.id, opt => opt.MapFrom(src => GetProperty(src, propertyName)))