async def METHOD_NAME(
    self,
    dataset: ServiceDataset,
    id: Union[str, int],
    record_type: Type[ServiceRecord],
) -> ServiceRecord:
    found = await self.__dao__.get_record_by_id(dataset, id)
    if not found:
        raise RecordNotFound(
            dataset=dataset.id,
            id=id,
            type="Record",
        )
    return record_type.parse_obj(found)