仮想テーブルの API に関する考慮事項

Microsoft Dataverse の仮想テーブル (仮想エンティティ) の導入に関連付けられるテーブル定義に対する変更には 2 つの大きなカテゴリがあります。

  • 新しいアセンブリ、名前空間、クラス、およびユーザー定義の仮想テーブル データ プロバイダーの開発をサポートするその他の種類の追加
  • 外部データ ソース マッピングをサポートするためのいくつかの追加のプロパティや、この機能の初期実装の制限を反映する既存のテーブルと列のプロパティーの動作の変更を含む、コア プラットフォームの変更

Dynamics 365 Data SDK アセンブリ

Dynamics 365 Data SDK アセンブリ、Microsoft.Xrm.Sdk.Data.dll には、ユーザー定義の仮想テーブル データ プロバイダーの作成を支援する種類が含まれています。 次の名前空間で構成されます:

名前空間 説明
Microsoft.Xrm.Sdk.Data AllowedQueryOptions 列挙などのいくつかの一般的な種類を含むベースの名前空間
Microsoft.Xrm.Sdk.Data.CodeGen 動的リフレクション、種類の一致、およびコードの生成をサポートするクラスとインターフェイスが含まれます。 主に内部プロバイダー エンジンによって使用されます。
Microsoft.Xrm.Sdk.Data.Converters 標準 XRM タイプを対応する .NET 基本タイプに変換する一連のクラス
Microsoft.Xrm.Sdk.Data.Exceptions ランタイム値の解決時に発生する可能性のあるエラーを表す例外クラスのセット。 すべては Microsoft.Xrm.Sdk.SdkExceptionBase から派生しています。
Microsoft.Xrm.Sdk.Data.Expressions FILTER、JOIN、および ORDER などのサポートされているクエリ変換の実装を支援するクラス。
Microsoft.Xrm.Sdk.Data.Mappings 仮想テーブル定義のタイプから外部タイプへのマッピングを構築するクラスとインターフェイス。
Microsoft.Xrm.Sdk.Data.Visitors RetrieveMultiple 中に ビジター パターン を実装して、データ プロバイダーに渡される QueryExpression パラメーター上で特定の操作を実行するクラス。 一般的なクエリと LINQ ベースの処理の両方に特定のサポートを提供します。 これらのクラスは Microsoft.Xrm.Sdk.Query.QueryExpressionVisitorBase から派生しています。

このアセンブリは NuGet パッケージとして配布されます: Microsoft.CrmSdk.Data

コア プラットフォームへの変更

標準の Dataverse 参照タイプへの次の変更が、仮想テーブルをサポートするために導入されました。

新しいテーブル

Dataverse 仮想テーブルのデータ プロバイダーとソースを次のテーブルとして公開します: EntityDataProviderEntityDataSource

新しいテーブル定義のプロパティ

4 つの新しいプロパティが EntityMetadata クラスに追加されました。

プロパティ 内容
DataProviderId 関連する仮想テーブル データ プロバイダーを識別するGUID
DataSourceId 関連する仮想テーブル データ ソースを識別するGUID
ExternalName 外部データ ソースのこの種類の名前
ExternalCollectionName UI で使用され、OData アクセスをサポートする、この種類の複数名

2 つの新しいプロパティが AttributeMetadata クラスに追加されました。

プロパティ 説明
ExternalName 外部データ ソースの種類の名前
IsDataSourceSecret このフィールドに機密情報を含んでいるかどうかを示します

ExternalName プロパティも、OptionMetadata および OptionSetMetadata クラスに追加されました。 これらの外部名称は、外部データソース内の関連する種類の名前を指定することで、外部データソースのマッピングを補助します。 これらのプロパティは仮想ソースでのみ使用されます。組み込みまたは標準のユーザー定義にエンティティの種類の場合、これらの外部名は null である必要があります。

仮想テーブルの作成

仮想テーブルの種類をプログラムで作成するアプローチは、標準のユーザー定義のエンティティの種類の作成とは少し異なります:

  • 関連付けられたデータ プロバイダー (およびオプションのデータ ソース) が作成時にわかっている場合は、これらが指定されます。
  • この種類のデータ プロバイダーがわからない場合は、最低でも、DataProviderId7015A531-CC0D-4537-B5F2-C882A1EB65AD に設定し、DataSourceIdnull に設定します。 実行時にこの種類のインスタンスを使用する前に、これらのプロパティに適切な値を割り当てる必要があります。

2 つの新しいテーブル、EntityDataProvider およびオプションの EntityDataSource は、プラグイン、およびそれぞれの ID、entitydataproviderid および entitydatasourceid を登録する際に作成され、これらの必要な GUID を表します。 (それ以外の場合は、開発者はこれらのユーザー定義の種類に直接アクセスすることはめったにありません。) DataSourceには、対応する DataProvider の種類と一致する必要があるプロパティ entitydataproviderid が含まれているか、実行時例外がスローされることに注意してください。

警告

標準 (非仮想) テーブルは関連する DataProviderIdDataSourceId の値が既定の値 (null) に設定されている必要があり、それ以外の場合は実行時例外がスローされます。 作成される、非仮想の種類を仮想の種類に変換したり、またはその逆を行うことはできません。

テーブル定義プロパティの動作の変更

次の表は、標準の EntityMetadata properties の動作が仮想テーブルに適用された際にどのように変更されるかについて説明しています。 一部のプロパティは仮想テーブルには有効ではありませんが、その他のプロパティは範囲や値に制限があります。

メタデータ プロパティ 適用? メモ
ActivityTypeMask 無効 常時 0
属性 有効
AutoCreateAccessTeams 無効 常時 false
AutoRouteToOwnerQueue 無効 常時 false、キューはサポートされていません。
CanBeInManyToMany 有効
CanBePrimaryEntityInRelationship 有効
CanBeRelatedEntityInRelationship 有効
CanChangeHierarchicalRelationship 無効 常時 false、階層型の関連付けはサポートされていません。
CanChangeTrackingBeEnabled 無効 常時 false、変更の追跡および値の監査はサポートされていません。
CanCreateAttributes 有効
CanCreateCharts 無効 常時 false
CanCreateForms 有効
CanCreateViews 有効
CanEnableSyncToExternalSearchIndex 無効 常時 false
CanModifyAdditionalSettings 有効
CanTriggerWorkflow 無効 常時 false、ワークフローはトリガーできません。
ChangeTrackingEnabled 無効 常時 false
CollectionSchemaName 有効
DaysSinceRecordLastModified 無効 常時 null または 0
内容 有効
DisplayCollectionName 有効
DisplayName 有効
EnforceStateTransitions 無効 StateCode とステータスはサポートされていません。
EntityColor 有効
EntityHelpUrl 有効
EntityHelpUrlEnabled 有効
EntitySetName 有効
ExtensionData 無効 廃止されたプロパティ
HasChanged 有効
IconLargeName 有効
IconMediumName 有効
IconSmallName 有効
IntroducedVersion 有効
IsActivity 無効 常時 false、アクティビティはサポートされていません。
IsActivityParty 無効 常時 false
IsAIRUpdated 無効 廃止
IsAuditEnabled 無効 常時 false、監査はサポートされていません。
IsAvailableOffline 無効 常時 false、オフラインでの使用はサポートされていません。
IsBusinessProcessEnabled 無効 常時 false、ビジネスプロセスはサポートされていません。
IsChildEntity 無効 常時 false で、すべての仮想テーブルは組織的に所有されます。
IsConnectionsEnabled 有効
IsCustomEntity 有効
IsCustomizable 有効
IsDocumentManagementEnabled 有効
IsDocumentRecommendationsEnabled 無効 常時false、この新しい機能はサポートされていません。
IsDuplicateDetectionEnabled 無効 常時 false、しかし重複データ検出はソース データで実行できます。
IsEnabledForCharts 制限あり サポートされた Fetch 句のみ。
IsEnabledForTrace 有効
IsImportable 有効
IsInteractionCentricEnabled 有効
IsIntersect 有効
IsKnowledgeManagementEnabled 無効 常時 false、ナレッジ マネージメントの統合はサポートされていません。
IsMailMergeEnabled 有効
IsManaged 有効
IsMappable 有効
IsOfflineInMobileClient 無効 常時 false、仮想テーブル値はオフラインでの使用にはキャッシュされません。
IsOneNoteIntegrationEnabled 有効
IsOptimisticConcurrencyEnabled 無効 常時 false、同時実行をデータ ソースで実行する必要があります。
IsPrivate 有効
IsQuickCreateEnabled 有効
IsReadOnlyInMobileClient 有効
IsRenameable 有効
IsSLAEnabled 無効 常時 false
IsStateModelAware 無効
IsValidForAdvancedFind 有効
IsValidForQueue 有効
IsVisibleInMobile 有効
IsVisibleInMobileClient 有効
キー 無効 代替キーはサポートされていません。
LogicalCollectionName 有効
LogicalName 有効
ManyToManyRelationships 有効
ManyToOneRelationships 有効 2 つの仮想テーブル間ではサポートされていません。
MetadataId 有効
MobileOfflineFilters 無効 常時 false、オフラインでの使用はサポートされていません。
ObjectTypeCode 有効
OneToManyRelationships 有効
OwnershipType 無効 常時 OrganizationOwned
PrimaryIdAttribute 有効
PrimaryImageAttribute 有効
PrimaryNameAttribute 有効
特権 無効
RecurrenceBaseEntityLogicalName 無効
ReportViewName 無効
スキーマ名 有効
SyncToExternalSearchIndex 無効

列定義プロパティの動作の変更

次の表は、標準の AttributeMetadata のプロパティ の動作が仮想テーブルに適用されたときにどのように変更されるかについて説明しています。 一部のプロパティは仮想テーブルには有効ではありませんが、その他のプロパティは範囲や値に制限があります。

メタデータ プロパティ 適用? メモ
ColumnNumber 無効
DeprecatedVersion 有効
内容 有効
DisplayName 有効
EntityLogicalName 有効
ExtensionData 無効
HasChanged 有効
InheritsFrom 有効
IntroducedVersion 有効
IsAuditEnabled 無効 常時 false、監査はサポートされていません。
IsCustomAttribute 有効
IsCustomizable 有効
IsFilterable 有効
IsGlobalFilterEnabled 有効
IsLogical 有効
IsManaged 有効
IsPrimaryId 有効
IsPrimaryName 有効
IsRenameable 有効
IsSearchable 有効
IsSecured 無効 常時 false、フィールドレベルのセキュリティはサポートされていません。
IsSortableEnabled 有効
IsValidForAdvancedFind 有効
IsValidForCreate 有効
IsValidForRead 有効
IsValidForUpdate 有効
LinkedAttributeId 有効
LogicalName 有効
MetadataId 有効
RequiredLevel 有効
SchemaName 有効
SourceType 無効 常時 0、計算されたまたはロールアップ値はサポートされていません。

関連項目

仮想エンティティに関する入門情報
カスタム仮想テーブル データ プロバイダー
サンプル: 汎用仮想テーブル データ プロバイダー プラグイン

注意

ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)

この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。