protected function makeObjects(IResult $result) {

        // TODO: Prefer to return existing instances from IdentityMap

        $instances = [];
        while ($row = $result->fetchRow(ARRAY_ASSOC)) {
            $instances[] = PersistableObject::populateNew($this->entityClass, $row);
        }
        return $instances;
    }