IViewMetadataCache
Der Dienst IViewMetadataCache bietet zwischengespeicherten Zugriff auf Metadaten der Dataverse-Ansicht (gespeicherte Abfrage). Ansichten werden beim ersten Zugriff aus Dataverse abgerufen und für nachfolgende Anfragen zwischengespeichert.
Abruf einer Ansicht nach ID
Verwenden GetAsync Sie mit dem GUID der Ansicht, um die Metadaten einer einzelnen Ansicht abzurufen, einschließlich ihrer FetchXML-Abfrage, Spalten und Anzeigekonfiguration.
// useViewMetadata ruft die Metadaten einer gespeicherten Dataverse-Ansicht ab. Gleichzeitig
// ruft auf eine einzelne In-Flight-Anfrage pro View-ID zurück; Gelöst
// Werte werden für die Lebensdauer des PowerPortalsProClient wiederverwendet.
import { useViewMetadata } from '@powerportalspro/react';
function MyComponent() {
const { data: viewMetadata, status } = useViewMetadata(viewId);
if (status !== 'success' || !viewMetadata) return null;
const { name, fetchXml, tableName, isDefault } = viewMetadata;
// ...
}[Inject]
private IViewMetadataCache _viewCache { get; set; } = null!;
protected override async Task OnInitializedAsync()
{
var viewMetadata = await _viewCache.GetAsync(viewId);
if (viewMetadata != null)
{
var viewName = viewMetadata.Name;
var fetchXml = viewMetadata.FetchXml;
var tableName = viewMetadata.TableName;
var isDefault = viewMetadata.IsDefault;
}
}Abruf aller Ansichten für eine Tabelle
Verwenden GetAllViewsForTableAsync Sie, um alle Ansichten für eine bestimmte Tabelle abzurufen. Filtern Sie, ViewType um nur öffentliche Aufrufe, Schnellsuchaufrufe oder Suchaufrufe zu erhalten.
// useViewsForTable liefert jede in der gegebenen Tabelle definierte Ansicht zurück —
// eine zwischengespeicherte Anfrage pro Tabelle, alle Konsumenten teilen das Ergebnis.
import { useViewsForTable } from '@powerportalspro/react';
import { ViewType } from '@powerportalspro/core';
function MyComponent() {
const { data: allViews } = useViewsForTable('contact');
// Erhalten Sie nur öffentliche Ansichten
const publicViews = allViews?.filter((v) => v.type === ViewType.Public) ?? [];
// Finde die Standardansicht
const defaultView = allViews?.find((v) => v.isDefault);
}var allViews = await _viewCache.GetAllViewsForTableAsync("contact");
// Erhalten Sie nur öffentliche Ansichten
var publicViews = allViews
.Where(v => v.Type == ViewType.Public)
.ToList();
// Finde die Standardansicht
var defaultView = allViews
.FirstOrDefault(v => v.IsDefault);Tipp
Ich bevorzuge
IViewMetadataCachees beimIPowerPortalsProService.RetrieveViewMetadataAsyncLesen von View-Metadaten. Der Cache vermeidet redundante Netzwerkaufrufe und wird intern von allen PowerPortalsPro-Netzkomponenten verwendet.
IViewMetadataCache Interface
Methoden
Name | Parameter | Typ | Beschreibung |
|---|---|---|---|
GetAllViewsForTableAsync | string tableName | Task<IEnumerable<ViewMetadata>> | Gibt alle zwischengespeicherten Ansichtsmetadaten für die angegebene Tabelle zurück, einschließlich öffentlicher, system- und benutzerdefinierter Ansichten. |
GetAsync | Guid key CancellationToken token | Task<ViewMetadata> | 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. |
GetAllViewsForTableAsyncGetAsyncCancellationToken token
ViewMetadata Baureihe
Eigenschaften
Name | Typ | Default | Beschreibung |
|---|---|---|---|
Columns | List<ViewColumn> | Die im Raster angezeigten Spalten, einschließlich ihrer logischen Namen und Pixelbreiten. | |
DisplayName | string? | Optionaler Anzeigenname für diese Ansicht. Wenn gesetzt, wird dies als Standardbezeichnung in der Ansichtselektor-Dropdown-Menü. Ein Lokalisierungseintrag bei | |
FetchXml | string | Die FetchXML-Abfrage, die definiert, welche Datensätze und Spalten für diese Ansicht abgerufen werden. | |
IsDefault | bool | False | Gibt an, ob dies die Standardansicht für die Tabelle ist. |
Name | string | Der Anzeigename der Ansicht. | |
QuickFindCompatible | bool | False | Gibt an, ob diese Ansicht die Schnellsuche unterstützt. |
TableName | string | Der logische Name der Dataverse-Tabelle, die diese Ansicht abfragt. | |
Type | ViewType? | Die Art der Ansicht (Public, AdvancedFind, Associated, QuickFind, Lookup usw.). | |
UserDefined | bool | False | Gibt an, ob diese Ansicht von einem Benutzer erstellt wurde (wahr) oder ob es sich um eine Systemansicht handelt (falsch). |
ColumnsDisplayNameFetchXmlIsDefaultNameQuickFindCompatibleTableNameTypeUserDefined