ITableMetadataCache

O ITableMetadataCache serviço fornece acesso em cache aos metadados das tabelas do Dataverse. Ele recupera metadados das tabelas do Dataverse no primeiro acesso e os armazena em cache para requisições subsequentes, evitando viagens repetidas de ida e volta ao servidor.

Uso

Injete ITableMetadataCache e chame GetAsync com o nome lógico da mesa. A primeira chamada recupera os metadados do Dataverse; chamadas subsequentes retornam o valor em cache.

React Blazor

O que está incluído

O objeto devolvido TableMetadata inclui:

  • Columns — Uma coleção de metadados de colunas incluindo tipos de dados, regras de validação, rótulos e restrições.
  • PrimaryIdColumn / PrimaryNameColumn — Os nomes lógicos das colunas da chave primária e do nome primário da tabela.
  • OneToMany / ManyToOne / ManyToMany — Metadados de relacionamento para navegar entre tabelas relacionadas.
  • PrimaryImageColumn — O nome lógico da coluna principal da imagem da tabela, caso exista.

Acessando Metadados de Coluna

Use a Columns coleção para buscar metadados de uma coluna específica. Caste para o tipo de metadado apropriado (ex StringMetadata.: , LookupMetadata, ) ChoiceMetadatapara propriedades específicas do tipo, como comprimento máximo, tabelas alvo ou valores de opção.

React Blazor

Acessando Metadados de Relacionamento

Use as OneToManycoleções , ManyToOne, e ManyToMany para consultar metadados de relacionamento por nome de relacionamento. Isso é usado internamente por SubGrid e ManyToManyLookupEdit para resolver tabelas relacionadas e consultas de build.

React Blazor

Dica

Prefiro ITableMetadataCache em vez IPowerPortalsProService.RetrieveTableMetadataAsync de ler metadados de tabelas. O cache evita chamadas de rede redundantes e é usado internamente por todos os componentes do PowerPortalsPro.

ITableMetadataCache Interface

Métodos

Nome
Parâmetros
Tipo
Descrição
GetAllHeadersAsyncCancellationToken token
Task<IReadOnlyList<TableHeader>>
Retorna os metadados em nível de identidade — lógico, nome de esquema e de exibição mais algumas bandeiras — para cada tabela no ambiente, ordenada por nome de exibição. Cacheado junto com as entradas por tabela em vez de em um caminho separado, porque é o O mesmo recurso caro lido de forma diferente: recuperar metadados de tabelas é pesado, e cada chamador deveria ser atendido pelo cache em vez de consultar novamente o Dataverse. Preenchimento Um Apanhador de Mesa é o caso motivador — perguntar Threading.CancellationToken) Para mil tabelas preencherem, um menu suspenso recuperaria todas as colunas de cada uma delas.
GetAsyncstring key
CancellationToken token
Task<TableMetadata>
Recupera um item do cache por chave. Se o item não for armazenado em cache, ele é retirado da fonte subjacente, armazenado em cache e devolvido.
GetManyAsyncIReadOnlyList<TableMetadataRequest> requests
CancellationToken token
Task<IReadOnlyList<TableMetadata>>
Retorna os metadados de várias tabelas ao mesmo tempo, cada um restringido às colunas e relacionamentos seus nomes de pedidos. O meio-termo entre as duas é o seguinte: tabela inteira para uma tabela, ou Apenas identidade para todas as mesas. Isso é para quem chama e quer um pouco de cada um — os nomes de exibição das colunas de consulta atrás da tabela relacionamentos, por exemplo, que vivem nas mesas relacionadas e não em uma só sendo questionado. Cortado do que o cache já tem, então perguntar cerca de trinta tabelas é Trinta consultas no dicionário em vez de trinta recuperações. Redução de alterações quais colunas retornam, não o que cada uma carrega: uma coluna nomeada chega como Totalmente descrito, como seria em uma leitura de mesa inteira. Uma tabela que o ambiente não possui está simplesmente ausente do resultado do que lançar — um lote é mais fácil de ler de volta ao corresponder no nome da tabela do que alinhando posicionalmente.
Nome: GetAllHeadersAsync
Parâmetros: CancellationToken token
Tipo: Task<IReadOnlyList<TableHeader>>
Descrição: Retorna os metadados em nível de identidade — lógico, nome de esquema e de exibição mais algumas bandeiras — para cada tabela no ambiente, ordenada por nome de exibição. Cacheado junto com as entradas por tabela em vez de em um caminho separado, porque é o O mesmo recurso caro lido de forma diferente: recuperar metadados de tabelas é pesado, e cada chamador deveria ser atendido pelo cache em vez de consultar novamente o Dataverse. Preenchimento Um Apanhador de Mesa é o caso motivador — perguntar Threading.CancellationToken) Para mil tabelas preencherem, um menu suspenso recuperaria todas as colunas de cada uma delas.
Nome: GetAsync
Parâmetros: string key
CancellationToken token
Tipo: Task<TableMetadata>
Descrição: Recupera um item do cache por chave. Se o item não for armazenado em cache, ele é retirado da fonte subjacente, armazenado em cache e devolvido.
Nome: GetManyAsync
Parâmetros: IReadOnlyList<TableMetadataRequest> requests
CancellationToken token
Tipo: Task<IReadOnlyList<TableMetadata>>
Descrição: Retorna os metadados de várias tabelas ao mesmo tempo, cada um restringido às colunas e relacionamentos seus nomes de pedidos. O meio-termo entre as duas é o seguinte: tabela inteira para uma tabela, ou Apenas identidade para todas as mesas. Isso é para quem chama e quer um pouco de cada um — os nomes de exibição das colunas de consulta atrás da tabela relacionamentos, por exemplo, que vivem nas mesas relacionadas e não em uma só sendo questionado. Cortado do que o cache já tem, então perguntar cerca de trinta tabelas é Trinta consultas no dicionário em vez de trinta recuperações. Redução de alterações quais colunas retornam, não o que cada uma carrega: uma coluna nomeada chega como Totalmente descrito, como seria em uma leitura de mesa inteira. Uma tabela que o ambiente não possui está simplesmente ausente do resultado do que lançar — um lote é mais fácil de ler de volta ao corresponder no nome da tabela do que alinhando posicionalmente.