components.PowerPortalsPro.Demo.Client.Customizations.Pages.Services.TableMetadataCache.TableMetadataCacheDemoPage.title
components.PowerPortalsPro.Demo.Client.Customizations.Pages.Services.TableMetadataCache.TableMetadataCacheDemoPage.description
components.PowerPortalsPro.Demo.Client.Customizations.Pages.Services.TableMetadataCache.TableMetadataCacheDemoPage.usage-title
components.PowerPortalsPro.Demo.Client.Customizations.Pages.Services.TableMetadataCache.TableMetadataCacheDemoPage.usage-description
// components.PowerPortalsPro.Demo.Client.Customizations.Pages.Services.TableMetadataCache.TableMetadataCacheDemoPage.snippet-usage-react-comment-line1
// components.PowerPortalsPro.Demo.Client.Customizations.Pages.Services.TableMetadataCache.TableMetadataCacheDemoPage.snippet-usage-react-comment-line2
// components.PowerPortalsPro.Demo.Client.Customizations.Pages.Services.TableMetadataCache.TableMetadataCacheDemoPage.snippet-usage-react-comment-line3
// components.PowerPortalsPro.Demo.Client.Customizations.Pages.Services.TableMetadataCache.TableMetadataCacheDemoPage.snippet-usage-react-comment-line4
// components.PowerPortalsPro.Demo.Client.Customizations.Pages.Services.TableMetadataCache.TableMetadataCacheDemoPage.snippet-usage-react-comment-line5
import { useTableMetadata } from '@powerportalspro/react';
function MyComponent() {
const { data: tableMetadata, status } = useTableMetadata('account');
if (status !== 'success' || !tableMetadata) return null;
const { tableName, primaryIdColumn, primaryNameColumn } = tableMetadata;
// components.PowerPortalsPro.Demo.Client.Customizations.Pages.Services.TableMetadataCache.TableMetadataCacheDemoPage.snippet-usage-placeholder-comment
}[Inject]
private ITableMetadataCache _tableMetadataCache { get; set; } = null!;
protected override async Task OnInitializedAsync()
{
var tableMetadata = await _tableMetadataCache.GetAsync("account");
if (tableMetadata != null)
{
var tableName = tableMetadata.TableName;
var primaryKey = tableMetadata.PrimaryIdColumn;
var primaryName = tableMetadata.PrimaryNameColumn;
}
}components.PowerPortalsPro.Demo.Client.Customizations.Pages.Services.TableMetadataCache.TableMetadataCacheDemoPage.what-title
components.PowerPortalsPro.Demo.Client.Customizations.Pages.Services.TableMetadataCache.TableMetadataCacheDemoPage.what-description
- components.PowerPortalsPro.Demo.Client.Customizations.Pages.Services.TableMetadataCache.TableMetadataCacheDemoPage.what-columns
- components.PowerPortalsPro.Demo.Client.Customizations.Pages.Services.TableMetadataCache.TableMetadataCacheDemoPage.what-primary
- components.PowerPortalsPro.Demo.Client.Customizations.Pages.Services.TableMetadataCache.TableMetadataCacheDemoPage.what-relationships
- components.PowerPortalsPro.Demo.Client.Customizations.Pages.Services.TableMetadataCache.TableMetadataCacheDemoPage.what-image
components.PowerPortalsPro.Demo.Client.Customizations.Pages.Services.TableMetadataCache.TableMetadataCacheDemoPage.columns-title
components.PowerPortalsPro.Demo.Client.Customizations.Pages.Services.TableMetadataCache.TableMetadataCacheDemoPage.columns-description
const { data: tableMetadata } = useTableMetadata('contact');
// components.PowerPortalsPro.Demo.Client.Customizations.Pages.Services.TableMetadataCache.TableMetadataCacheDemoPage.snippet-columns-react-comment-line1
// components.PowerPortalsPro.Demo.Client.Customizations.Pages.Services.TableMetadataCache.TableMetadataCacheDemoPage.snippet-columns-react-comment-line2
// components.PowerPortalsPro.Demo.Client.Customizations.Pages.Services.TableMetadataCache.TableMetadataCacheDemoPage.snippet-columns-react-comment-line3
const column = tableMetadata?.columns.find((c) => c.columnName === 'firstname');
if (column) {
const isRequired = column.isRequired;
const isValidForUpdate = column.isValidForUpdate;
if (column.type === ColumnType.String) {
const maxLength = column.maxLength;
}
}var tableMetadata = await _tableMetadataCache.GetAsync("contact");
// components.PowerPortalsPro.Demo.Client.Customizations.Pages.Services.TableMetadataCache.TableMetadataCacheDemoPage.snippet-columns-lookup-comment
if (tableMetadata.Columns.TryGetColumn("firstname", out var column))
{
var isRequired = column.IsRequired;
var isValidForUpdate = column.IsValidForUpdate;
// components.PowerPortalsPro.Demo.Client.Customizations.Pages.Services.TableMetadataCache.TableMetadataCacheDemoPage.snippet-columns-cast-comment
if (column is StringMetadata stringMeta)
{
var maxLength = stringMeta.MaxLength;
}
}components.PowerPortalsPro.Demo.Client.Customizations.Pages.Services.TableMetadataCache.TableMetadataCacheDemoPage.relationships-title
components.PowerPortalsPro.Demo.Client.Customizations.Pages.Services.TableMetadataCache.TableMetadataCacheDemoPage.relationships-description
const { data: tableMetadata } = useTableMetadata('account');
// components.PowerPortalsPro.Demo.Client.Customizations.Pages.Services.TableMetadataCache.TableMetadataCacheDemoPage.snippet-relationships-one-comment
const oneToMany = tableMetadata?.oneToMany.find(
(x) => x.relationshipName === 'contact_customer_accounts',
);
// components.PowerPortalsPro.Demo.Client.Customizations.Pages.Services.TableMetadataCache.TableMetadataCacheDemoPage.snippet-relationships-many-comment
const manyToMany = tableMetadata?.manyToMany.find(
(x) => x.relationshipName === 'ppp_Account_ppp_Region_ppp_Region',
);
if (manyToMany) {
const relatedTable = tableMetadata?.tableName === manyToMany.table1
? manyToMany.table2
: manyToMany.table1;
}var tableMetadata = await _tableMetadataCache.GetAsync("account");
// components.PowerPortalsPro.Demo.Client.Customizations.Pages.Services.TableMetadataCache.TableMetadataCacheDemoPage.snippet-relationships-one-comment
var oneToMany = tableMetadata.OneToMany
.FirstOrDefault(x => x.RelationshipName == "contact_customer_accounts");
// components.PowerPortalsPro.Demo.Client.Customizations.Pages.Services.TableMetadataCache.TableMetadataCacheDemoPage.snippet-relationships-many-comment
var manyToMany = tableMetadata.ManyToMany
.FirstOrDefault(x => x.RelationshipName == "ppp_Account_ppp_Region_ppp_Region");
if (manyToMany != null)
{
var relatedTable = tableMetadata.TableName == manyToMany.Table1
? manyToMany.Table2
: manyToMany.Table1;
}components.PowerPortalsPro.Demo.Client.Customizations.Pages.Services.TableMetadataCache.TableMetadataCacheDemoPage.tip-label
components.PowerPortalsPro.Demo.Client.Customizations.Pages.Services.TableMetadataCache.TableMetadataCacheDemoPage.vs-service-description
ITableMetadataCache Interface
components.PowerPortalsPro.Demo.Client.Customizations.Components.Documentation.ApiDocumentation.methods
components.PowerPortalsPro.Demo.Client.Customizations.Components.Documentation.ApiDocumentation.name | components.PowerPortalsPro.Demo.Client.Customizations.Components.Documentation.ApiDocumentation.parameters | components.PowerPortalsPro.Demo.Client.Customizations.Components.Documentation.ApiDocumentation.type | components.PowerPortalsPro.Demo.Client.Customizations.Components.Documentation.ApiDocumentation.description |
|---|---|---|---|
GetAsync | string key CancellationToken token | Task<TableMetadata> | キーでキャッシュからアイテムを取得します。もしアイテムがキャッシュされていない場合は、基底のソースからフェッチされ、キャッシュされて返されます。 |
GetAsyncCancellationToken token
