#enh use cache in the Entity::__get()