ITableMetadataCache

Der Dienst ITableMetadataCache bietet zwischengespeicherten Zugriff auf Metadaten der Dataverse-Tabellen. Es holt Tabellenmetadaten aus Dataverse beim ersten Zugriff ab und speichert sie für nachfolgende Anfragen, wodurch wiederholte Rundfahrten zum Server vermieden werden.

Verwendung

Injizieren ITableMetadataCache und rufen Sie mit dem logischen Namen der Tabelle auf. GetAsync Der erste Aufruf ruft die Metadaten aus Dataverse ab; nachfolgende Aufrufe geben den zwischengespeicherten Wert zurück.

React Blazor

Was enthalten ist

Das zurückgegebene TableMetadata Objekt umfasst:

  • Columns — Eine Sammlung von Spaltenmetadaten, einschließlich Datentypen, Validierungsregeln, Beschriftungen und Einschränkungen.
  • PrimaryIdColumn / PrimaryNameColumn — Die logischen Namen der Spalten Primärschlüssel und Primärname der Tabelle.
  • OneToMany / ManyToOne / ManyToMany — Beziehungsmetadaten zur Navigation zwischen verwandten Tabellen.
  • PrimaryImageColumn — Der logische Name der primären Bildspalte der Tabelle, falls einer existiert.

Zugriff auf Spaltenmetadaten

Nutzen Sie die Sammlung, Columns um Metadaten für eine bestimmte Spalte nachzuschlagen. Für typspezifische Eigenschaften wie maximale Länge, Zieltabellen oder Optionswerte werden auf den entsprechenden Metadatentyp (z. B. StringMetadata, LookupMetadata, ChoiceMetadata) gecastet.

React Blazor

Zugriff auf Beziehungsmetadaten

Verwenden Sie die , ManyToOne, und SammlungenOneToManyManyToMany, um Beziehungsmetadaten nach Beziehungsnamen nachzuschlagen. Dies wird intern von SubGrid und ManyToManyLookupEdit verwendet, um verwandte Tabellen zu lösen und Abfragen zu erstellen.

React Blazor

Tipp

Bevorzuge ITableMetadataCache es für IPowerPortalsProService.RetrieveTableMetadataAsync Metadaten der Lesetabelle. Der Cache vermeidet redundante Netzwerkaufrufe und wird intern von allen PowerPortalsPro-Komponenten verwendet.

ITableMetadataCache Interface

Methoden

Name
Parameter
Typ
Beschreibung
GetAllHeadersAsyncCancellationToken token
Task<IReadOnlyList<TableHeader>>
Gibt die Identitätsebene-Metadaten zurück – logisch, Schema und Anzeigename plus einige Flags – für jede Tabelle in der Umgebung, geordnet nach Anzeigenamen. Zwischengespeichert neben den einträgen pro Tabelle statt auf einem separaten Pfad, da es der Die gleiche teure Ressource liest sich anders: Das Abrufen von Tabellenmetadaten ist umfangreich, und jeder Aufrufer sollte aus dem Cache bedient werden, anstatt Dataverse erneut abzufragen. Befüllung Ein Tischwähler ist der motivierende Fall – das Fragen. Threading.CancellationToken) Für tausend Tabellen, die ein Dropdown füllen, würde jede Spalte jeder einzelnen Spalte abgerufen werden.
GetAsyncstring key
CancellationToken token
Task<TableMetadata>
Ruft ein Element per Schlüssel aus dem Cache ab. Wenn das Element nicht zwischengespeichert ist, wird es aus der zugrunde liegenden Quelle abgerufen, zwischengespeichert und zurückgegeben.
GetManyAsyncIReadOnlyList<TableMetadataRequest> requests
CancellationToken token
Task<IReadOnlyList<TableMetadata>>
Gibt mehrere Metadaten mehrerer Tabellen gleichzeitig zurück, die jeweils auf die Spalten und eingegrenzt sind Beziehungen seine Anfragenamen. Der Mittelweg zwischen den beiden oben lautet: ganzer Tisch für einen Tisch oder Nur für jede Tabelle. Das ist für den Anrufer, der ein wenig möchte von jeder von vielen – die Anzeigenamen der Suchspalten hinter den Tabellen. Beziehungen, zum Beispiel, die auf den zugehörigen Tabellen statt auf der einen liegen befragt zu werden. Abgetrennt von dem, was der Cache bereits enthält, daher ist es ungefähr dreißig Tabellen zu fragen dreißig Wörterbuchnachschlager statt dreißig Abrufe. Eingrenzung von Änderungen Welche Spalten zurückkommen, nicht welche jede führt: Eine benannte Spalte kommt als vollständig beschrieben, wie es bei einem Ganz-Tisch-Lesen der Fall wäre. Eine Tabelle, die die Umgebung nicht hat, fehlt einfach im Ergebnis als Werfen – eine Charge lässt sich leichter durch das Abgleichen des Tabellennamens zurücklesen als indem man es positionell ausrichtet.
Name: GetAllHeadersAsync
Parameter: CancellationToken token
Typ: Task<IReadOnlyList<TableHeader>>
Beschreibung: Gibt die Identitätsebene-Metadaten zurück – logisch, Schema und Anzeigename plus einige Flags – für jede Tabelle in der Umgebung, geordnet nach Anzeigenamen. Zwischengespeichert neben den einträgen pro Tabelle statt auf einem separaten Pfad, da es der Die gleiche teure Ressource liest sich anders: Das Abrufen von Tabellenmetadaten ist umfangreich, und jeder Aufrufer sollte aus dem Cache bedient werden, anstatt Dataverse erneut abzufragen. Befüllung Ein Tischwähler ist der motivierende Fall – das Fragen. Threading.CancellationToken) Für tausend Tabellen, die ein Dropdown füllen, würde jede Spalte jeder einzelnen Spalte abgerufen werden.
Name: GetAsync
Parameter: string key
CancellationToken token
Typ: Task<TableMetadata>
Beschreibung: Ruft ein Element per Schlüssel aus dem Cache ab. Wenn das Element nicht zwischengespeichert ist, wird es aus der zugrunde liegenden Quelle abgerufen, zwischengespeichert und zurückgegeben.
Name: GetManyAsync
Parameter: IReadOnlyList<TableMetadataRequest> requests
CancellationToken token
Typ: Task<IReadOnlyList<TableMetadata>>
Beschreibung: Gibt mehrere Metadaten mehrerer Tabellen gleichzeitig zurück, die jeweils auf die Spalten und eingegrenzt sind Beziehungen seine Anfragenamen. Der Mittelweg zwischen den beiden oben lautet: ganzer Tisch für einen Tisch oder Nur für jede Tabelle. Das ist für den Anrufer, der ein wenig möchte von jeder von vielen – die Anzeigenamen der Suchspalten hinter den Tabellen. Beziehungen, zum Beispiel, die auf den zugehörigen Tabellen statt auf der einen liegen befragt zu werden. Abgetrennt von dem, was der Cache bereits enthält, daher ist es ungefähr dreißig Tabellen zu fragen dreißig Wörterbuchnachschlager statt dreißig Abrufe. Eingrenzung von Änderungen Welche Spalten zurückkommen, nicht welche jede führt: Eine benannte Spalte kommt als vollständig beschrieben, wie es bei einem Ganz-Tisch-Lesen der Fall wäre. Eine Tabelle, die die Umgebung nicht hat, fehlt einfach im Ergebnis als Werfen – eine Charge lässt sich leichter durch das Abgleichen des Tabellennamens zurücklesen als indem man es positionell ausrichtet.