Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Dua kategori perubahan yang luas pada sistem definisi tabel dikaitkan dengan pengenalan tabel virtual (juga dikenal sebagai entitas virtual) dalam Microsoft Dataverse:
- Penambahan assembly baru, namespace, kelas, dan jenis lainnya untuk mendukung pengembangan penyedia data tabel virtual kustom
- Perubahan pada platform inti, termasuk beberapa properti lain untuk mendukung pemetaan sumber data eksternal, dan modifikasi perilaku properti tabel dan kolom yang ada yang mencerminkan batasan implementasi awal fitur ini
Rakitan SDK Data Dynamics 365
Rakitan Dynamics 365 Data SDK, Microsoft.Xrm.Sdk.Data.dll, berisi tipe yang mempermudah pembuatan penyedia data tabel virtual kustom. Ini terdiri dari namespace berikut:
| Namespace | Description |
|---|---|
| Microsoft.Xrm.Sdk.Data | Namespace dasar yang berisi beberapa jenis umum, seperti enumerasi AllowedQueryOptions |
| Microsoft.Xrm.Sdk.Data.CodeGen | Berisi kelas dan antarmuka yang mendukung refleksi dinamis, pencocokan jenis, dan pembuatan kode. Terutama digunakan oleh mesin penyedia internal. |
| Microsoft.Xrm.Sdk.Data.Converters | Sekumpulan kelas untuk mengonversi jenis XRM standar ke jenis dasar .NET yang sesuai |
| Microsoft.Xrm.Sdk.Data.Exceptions | Sekumpulan kelas pengecualian yang mewakili kesalahan yang dapat terjadi selama resolusi nilai runtime. Semua berasal dari Microsoft.Xrm.Sdk.SdkExceptionBase. |
| Microsoft.Xrm.Sdk.Data.Expressions | Kelas untuk membantu menerapkan transformasi kueri yang didukung, seperti FILTER, JOIN, dan ORDER. |
| Microsoft.Xrm.Sdk.Data.Mappings | Kelas dan antarmuka yang membangun pemetaan dari jenis definisi tabel virtual ke jenis eksternal. |
| Microsoft.Xrm.Sdk.Data.Visitors | Kelas yang mengimplementasikan pola pengunjung untuk melakukan operasi tertentu pada parameter QueryExpression yang diteruskan ke penyedia data selama permintaan RetrieveMultiple. Menyediakan dukungan khusus untuk kueri generik dan pemrosesan berbasis LINQ. Kelas-kelas ini berasal dari Microsoft.Xrm.Sdk.Query.QueryExpressionVisitorBase. |
Namespace ini berada dalam rakitan yang disertakan dalam paket NuGet ini: Microsoft.CrmSdk.Data.
Perubahan pada platform inti
Perubahan berikut pada jenis referensi Dataverse standar mendukung tabel virtual.
Tabel baru
Dataverse mengekspos penyedia dan sumber data tabel virtual sebagai tabel berikut: EntityDataProvider dan EntityDataSource.
Properti baru untuk definisi tabel
Empat properti baru ditambahkan ke EntityMetadata kelas :
| Property | Description |
|---|---|
| DataProviderId | GUID yang mengidentifikasi penyedia data tabel virtual terkait |
| DataSourceId | GUID yang mengidentifikasi sumber data tabel virtual terkait |
| ExternalName | Nama untuk jenis ini di sumber data eksternal |
| ExternalCollectionName | Nama jamak untuk jenis ini, digunakan di UI dan untuk mendukung akses OData |
Dua properti baru ditambahkan ke AttributeMetadata kelas :
| Property | Description |
|---|---|
| ExternalName | Nama jenis di sumber data eksternal |
| IsDataSourceSecret | Menunjukkan apakah bidang berisi informasi sensitif |
Properti ExternalName juga ditambahkan pada kelas OptionMetadata dan OptionSetMetadata. Nama eksternal ini membantu pemetaan sumber data eksternal, dengan menentukan nama jenis terkait di sumber data eksternal. Properti ini hanya digunakan untuk tabel virtual. Untuk jenis entitas kustom bawaan atau standar, nama eksternal ini harus null.
Pembuatan tabel virtual
Pendekatan untuk membuat jenis tabel virtual secara terprogram sedikit berbeda dari pembuatan jenis entitas kustom standar dalam hal itu:
- Jika Anda mengetahui penyedia data terkait (dan sumber data opsional) pada waktu pembuatan, tentukan nilai-nilai ini.
- Jika Anda tidak tahu penyedia data untuk jenis ini, atur DataProviderId ke
7015A531-CC0D-4537-B5F2-C882A1EB65ADdan atur DataSourceId kenull. Sebelum Anda menggunakan instans jenis ini pada runtime, tetapkan properti ini nilai yang sesuai.
Saat mendaftarkan plugin, Anda membuat dua tabel baru, EntityDataProvider dan secara EntityDataSourceopsional . ID masing-masing, entitydataproviderid dan entitydatasourceid, mewakili GUID yang diperlukan tersebut. (Jika tidak, pengembang jarang perlu mengakses jenis kustom ini secara langsung.) Perhatikan bahwa DataSource berisi properti entitydataproviderid yang harus cocok dengan jenis DataProvider yang sesuai atau pengecualian runtime dilemparkan.
Peringatan
Tabel standar (nonvirtual) harus memiliki nilai yang terkait dengan DataProviderId dan DataSourceId disetel ke nilai default (null), jika tidak, pengecualian runtime terjadi. Setelah dibuat, Anda tidak dapat mengonversi dari jenis nonvirtual ke jenis virtual, atau sebaliknya.
Perubahan perilaku properti definisi tabel
Tabel berikut ini merinci bagaimana perilaku properti EntityMetadata standar berubah saat Anda menerapkannya ke tabel virtual. Beberapa properti tidak valid untuk tabel virtual, sedangkan properti lain dibatasi dalam cakupan atau nilai.
| Properti Metadata | Berlaku? | Notes |
|---|---|---|
| ActivityTypeMask | tidak valid | Selalu 0 |
| Atributs | sah | |
| AutoCreateAccessTeams | tidak valid | Selalu false |
| AutoRouteToOwnerQueue | tidak valid | Selalu false, antrean tidak didukung. |
| CanBeInManyToMany | sah | |
| CanBePrimaryEntityInRelationship | sah | |
| CanBeRelatedEntityInRelationship | sah | |
| CanChangeHierarchicalRelationship | tidak valid | Selalu salah, hubungan hierarkis tidak didukung. |
| CanChangeTrackingBeEnabled | tidak valid | Selalu false, nilai pelacakan dan audit perubahan tidak didukung. |
| CanCreateAttributes | sah | |
| CanCreateCharts | tidak valid | Selalu false |
| CanCreateForms | sah | |
| CanCreateViews | sah | |
| CanEnableSyncToExternalSearchIndex | tidak valid | Selalu false |
| CanModifyAdditionalSettings | sah | |
| CanTriggerWorkflow | tidak valid | Selalu false, alur kerja tidak dapat dipicu. |
| ChangeTrackingEnabled | tidak valid | Selalu false |
| CollectionSchemaName | sah | |
| DaysSinceRecordLastModified | tidak valid | Selalu null atau 0 |
| Description | sah | |
| DisplayCollectionName | sah | |
| DisplayName | sah | |
| EnforceStateTransitions | tidak valid | StateCode dan Status tidak didukung. |
| EntityColor | sah | |
| EntityHelpUrl | sah | |
| EntityHelpUrlEnabled | sah | |
| EntitySetName | sah | |
| ExtensionData | tidak valid | Properti yang tidak digunakan lagi |
| HasChanged | sah | |
| IconLargeName | sah | |
| IconMediumName | sah | |
| IconSmallName | sah | |
| IntroducedVersion | sah | |
| IsActivity | tidak valid | Selalu false, aktivitas tidak didukung. |
| IsActivityParty | tidak valid | Selalu false |
| IsAIRUpdated | tidak valid | Deprecated |
| IsAuditEnabled | tidak valid | Selalu false, audit tidak didukung. |
| IsAvailableOffline | tidak valid | Selalu salah, penggunaan offline tidak didukung. |
| IsBusinessProcessEnabled | tidak valid | Selalu salah, proses bisnis tidak didukung. |
| IsChildEntity | tidak valid | Selalu false, semua tabel virtual dimiliki secara organisasi. |
| IsConnectionsEnabled | sah | |
| IsCustomEntity | sah | |
| Dapat Disesuaikan | sah | |
| IsDocumentManagementEnabled | sah | |
| IsDocumentRecommendationsEnabled | tidak valid | Selalu false, fitur baru ini tidak didukung. |
| IsDuplicateDetectionEnabled | tidak valid | Selalu false, tetapi deteksi duplikat dapat dilakukan di sumber data. |
| IsEnabledForCharts | terbatas | Hanya untuk klausa Fetch yang didukung. |
| IsEnabledForTrace | sah | |
| IsImportable | sah | |
| IsInteractionCentricEnabled | sah | |
| IsIntersect | sah | |
| IsKnowledgeManagementEnabled | tidak valid | Selalu salah, integrasi manajemen pengetahuan tidak didukung. |
| IsMailMergeEnabled | sah | |
| IsManaged | sah | |
| IsMappable | sah | |
| IsOfflineInMobileClient | tidak valid | Selalu false, nilai tabel virtual tidak di-cache untuk penggunaan offline. |
| IsOneNoteIntegrationEnabled | sah | |
| IsOptimisticConcurrencyEnabled | tidak valid | Selalu false, keserempakan harus diterapkan dalam sumber data. |
| IsPrivate | sah | |
| IsQuickCreateEnabled | sah | |
| IsReadOnlyInMobileClient | sah | |
| IsRenameable | sah | |
| IsSLAEnabled | tidak valid | Selalu false |
| IsStateModelAware | tidak valid | |
| IsValidForAdvancedFind | sah | |
| IsValidForQueue | sah | |
| IsVisibleInMobile | sah | |
| IsVisibleInMobileClient | sah | |
| Keys | tidak valid | Kunci alternatif tidak didukung |
| LogicalCollectionName | sah | |
| LogicalName | sah | |
| ManyToManyRelationships | sah | |
| ManyToOneRelationships | sah | Tidak didukung di antara dua tabel virtual. |
| MetadataId | sah | |
| MobileOfflineFilters | tidak valid | Selalu salah, penggunaan offline tidak didukung. |
| ObjectTypeCode | sah | |
| OneToManyRelationships | sah | |
| OwnershipType | tidak valid | Selalu OrganizationOwned |
| PrimaryIdAttribute | sah | |
| PrimaryImageAttribute | sah | |
| PrimaryNameAttribute | sah | |
| Hak istimewa | tidak valid | |
| RecurrenceBaseEntityLogicalName | tidak valid | |
| ReportViewName | tidak valid | |
| SchemaName | sah | |
| SyncToExternalSearchIndex | tidak valid |
Perubahan perilaku properti definisi kolom
Tabel berikut menjelaskan bagaimana perilaku properti AttributeMetadata standar berubah saat Anda menerapkannya ke tabel virtual. Beberapa properti tidak valid untuk tabel virtual, sedangkan properti lain memiliki cakupan atau nilai terbatas.
| Properti Metadata | Berlaku? | Notes |
|---|---|---|
| ColumnNumber | tidak valid | |
| DeprecatedVersion | sah | |
| Description | sah | |
| DisplayName | sah | |
| EntityLogicalName | sah | |
| ExtensionData | tidak valid | |
| HasChanged | sah | |
| InheritsFrom | sah | |
| IntroducedVersion | sah | |
| IsAuditEnabled | tidak valid | Selalu false, audit tidak didukung. |
| IsCustomAttribute | sah | |
| Dapat Disesuaikan | sah | |
| IsFilterable | sah | |
| IsGlobalFilterEnabled | sah | |
| IsLogical | sah | |
| IsManaged | sah | |
| IsPrimaryId | sah | |
| IsPrimaryName | sah | |
| IsRenameable | sah | |
| IsSearchable | sah | |
| IsSecured | tidak valid | Selalu false, keamanan tingkat bidang tidak didukung. |
| IsSortableEnabled | sah | |
| IsValidForAdvancedFind | sah | |
| IsValidForCreate | sah | |
| ApakahValidUntukBaca | sah | |
| IsValidForUpdate | sah | |
| LinkedAttributeId | sah | |
| LogicalName | sah | |
| MetadataId | sah | |
| Tingkat yang Diperlukan | sah | |
| SchemaName | sah | |
| Jenis Sumber | tidak valid | Selalu 0, nilai terhitung atau rollup tidak didukung. |
Baca juga
Memulai dengan entitas virtual
Penyedia data tabel virtual khusus
Sampel: Plug-in generik penyedia data tabel virtual