ITableMetadataCache

Le ITableMetadataCache service fournit un accès en cache aux métadonnées des tables Dataverse. Il récupère les métadonnées de table de Dataverse lors du premier accès et les met en cache pour les requêtes ultérieures, évitant ainsi les allers-retours répétés vers le serveur.

Utilisation

Injectez ITableMetadataCache et appelez GetAsync avec le nom logique de la table. Le premier appel récupère les métadonnées de Dataverse ; les appels suivants renvoient la valeur mise en cache.

React Blazor

Ce qui est inclus

L’objet retourné TableMetadata comprend :

  • Columns — Une collection de métadonnées de colonnes incluant les types de données, les règles de validation, les étiquettes et les contraintes.
  • PrimaryIdColumn / PrimaryNameColumn — Les noms logiques des colonnes clés primaires et noms principaux du tableau.
  • OneToMany / ManyToOne / ManyToMany — Métadonnées de relations pour naviguer entre les tables associées.
  • PrimaryImageColumn — Le nom logique de la colonne principale image du tableau, si elle existe.

Accès aux métadonnées de colonnes

Utilisez la Columns collection pour rechercher les métadonnées d’une colonne spécifique. Castez vers le type de métadonnées approprié (par StringMetadataexemple , LookupMetadata, ChoiceMetadata) pour des propriétés spécifiques au type telles que la longueur maximale, les tables cibles ou les valeurs d’option.

React Blazor

Accès aux métadonnées de la relation

Utilisez les OneToManycollections , ManyToOne, et ManyToMany pour rechercher les métadonnées de la relation par nom de la relation. Celle-ci est utilisée en interne par SubGrid et ManyToManyLookupEdit pour résoudre les tables et requêtes de compilation associées.

React Blazor

Conseil

Préféré ITableMetadataCache plutôt IPowerPortalsProService.RetrieveTableMetadataAsync que pour lire les métadonnées des tableaux. Le cache évite les appels réseau redondants et est utilisé en interne par tous les composants PowerPortalsPro.

ITableMetadataCache Interface

Méthodes

Nom
Paramètres
Type
Description
GetAllHeadersAsyncCancellationToken token
Task<IReadOnlyList<TableHeader>>
Retourne les métadonnées au niveau identité — logique, schéma et nom d’affichage, plus quelques indicateurs — pour chaque table de l’environnement, classé par nom d’affichage. Mise en cache aux côtés des entrées par table plutôt que sur un chemin séparé, car c’est le La même ressource coûteuse se lit différemment : la récupération des métadonnées de table est lourde, et chaque appelant doit être servi depuis le cache plutôt que de relancer Dataverse. Peuplement Un Booker est le cas motivant — la question Threading.CancellationToken) pour mille tableaux à remplir, un menu déroulant récupérait chaque colonne de chacune d’elles.
GetAsyncstring key
CancellationToken token
Task<TableMetadata>
Récupère un élément du cache par clé. Si l’élément n’est pas mis en cache, il est récupéré depuis la source sous-jacente, mis en cache, puis retourné.
GetManyAsyncIReadOnlyList<TableMetadataRequest> requests
CancellationToken token
Task<IReadOnlyList<TableMetadata>>
Retourne plusieurs métadonnées de tables en même temps, chacune réduite aux colonnes et ses noms de demandes. Le juste milieu entre les deux s’écrit ci-dessus : table entière pour une table, ou Identité uniquement pour chaque table. C’est pour l’appelant qui veut un peu de chacun de nombreux — les noms affichés des colonnes de recherche derrière une table Les relations, par exemple, qui vivent sur les tables associées plutôt que sur la même interrogé. Découpé de ce que le cache contient déjà, donc demander environ trente tables est trente recherches de dictionnaire au lieu de trente recherches. Modifications de réduction quelles colonnes reviennent, pas ce que chacune porte : une colonne nommée arrive comme Entièrement décrit, comme lors d’une lecture complète sur table. Une table que l’environnement n’a pas est simplement absente du résultat Que de lancer — un lot est plus facile à lire en correspondant au nom de la table que en l’alignant en position.
Nom: GetAllHeadersAsync
Paramètres: CancellationToken token
Type: Task<IReadOnlyList<TableHeader>>
Description: Retourne les métadonnées au niveau identité — logique, schéma et nom d’affichage, plus quelques indicateurs — pour chaque table de l’environnement, classé par nom d’affichage. Mise en cache aux côtés des entrées par table plutôt que sur un chemin séparé, car c’est le La même ressource coûteuse se lit différemment : la récupération des métadonnées de table est lourde, et chaque appelant doit être servi depuis le cache plutôt que de relancer Dataverse. Peuplement Un Booker est le cas motivant — la question Threading.CancellationToken) pour mille tableaux à remplir, un menu déroulant récupérait chaque colonne de chacune d’elles.
Nom: GetAsync
Paramètres: string key
CancellationToken token
Type: Task<TableMetadata>
Description: Récupère un élément du cache par clé. Si l’élément n’est pas mis en cache, il est récupéré depuis la source sous-jacente, mis en cache, puis retourné.
Nom: GetManyAsync
Paramètres: IReadOnlyList<TableMetadataRequest> requests
CancellationToken token
Type: Task<IReadOnlyList<TableMetadata>>
Description: Retourne plusieurs métadonnées de tables en même temps, chacune réduite aux colonnes et ses noms de demandes. Le juste milieu entre les deux s’écrit ci-dessus : table entière pour une table, ou Identité uniquement pour chaque table. C’est pour l’appelant qui veut un peu de chacun de nombreux — les noms affichés des colonnes de recherche derrière une table Les relations, par exemple, qui vivent sur les tables associées plutôt que sur la même interrogé. Découpé de ce que le cache contient déjà, donc demander environ trente tables est trente recherches de dictionnaire au lieu de trente recherches. Modifications de réduction quelles colonnes reviennent, pas ce que chacune porte : une colonne nommée arrive comme Entièrement décrit, comme lors d’une lecture complète sur table. Une table que l’environnement n’a pas est simplement absente du résultat Que de lancer — un lot est plus facile à lire en correspondant au nom de la table que en l’alignant en position.