Sanal tablolar için API ile ilgili dikkat edilmesi gerekenler

Tablo tanımı sisteminde yapılan iki geniş değişiklik kategorisi, Microsoft Dataverse'de sanal tabloların (sanal varlıklar olarak da bilinir) kullanıma sunulmasıyla ilişkilidir:

  • Özel sanal tablo veri sağlayıcılarının geliştirilmesini desteklemek için yeni bir derleme, ad alanları, sınıflar ve diğer türlerin eklenmesi
  • Dış veri kaynağı eşlemesini desteklemek için birkaç özellik daha dahil olmak üzere çekirdek platformda yapılan değişiklikler ve bu özelliğin ilk uygulamasının sınırlamalarını yansıtan mevcut tablo ve sütun özelliklerinin davranışlarındaki değişiklikler

Dynamics 365 Veri SDK'sı derlemesi

Microsoft.Xrm.Sdk.Data.dll Dynamics 365 Veri SDK'sı derlemesi, özel sanal tablo veri sağlayıcılarının oluşturulmasına yardımcı olacak türler içerir. Aşağıdaki ad alanlarını içerir:

Ad Alanı Açıklama
Microsoft.Xrm.Sdk.Data AllowedQueryOptions numaralandırması gibi birkaç yaygın türü içeren temel ad alanı
Microsoft.Xrm.Sdk.Data.CodeGen Dinamik yansımayı, tür eşleştirmeyi ve kod oluşturmayı destekleyen sınıflar ve arabirimler içerir. Temel olarak iç sağlayıcı altyapısı tarafından kullanılır.
Microsoft.Xrm.Sdk.Data.Converters Standart XRM türlerini ilgili .NET temel türlerine dönüştürmek için bir sınıf kümesi
Microsoft.Xrm.Sdk.Data.Exceptions Çalışma zamanı değer çözümlemesi sırasında oluşabilecek hataları temsil eden özel durum sınıfları kümesi. Tümü Microsoft.Xrm.Sdk.SdkExceptionBase'den türetilmiştir.
Microsoft.Xrm.Sdk.Data.Expressions FILTER, JOIN ve ORDER gibi desteklenen sorgu dönüştürmelerinin uygulanmasına yardımcı olacak sınıflar.
Microsoft.Xrm.Sdk.Data.Mappings Sanal tablo tanımı türlerinden dış türlere eşlemeyi oluşturan sınıflar ve arabirimler.
Microsoft.Xrm.Sdk.Data.Visitors RetrieveMultiple istekleri sırasında veri sağlayıcısına iletilen QueryExpression parametresi üzerinde belirli işlemleri gerçekleştirmek için ziyaretçi desenini uygulayan sınıflar. Hem genel sorgu hem de LINQ tabanlı işleme için özel destek sağlar. Bu sınıflar Microsoft.Xrm.Sdk.Query.QueryExpressionVisitorBase'den türetilir.

Bu ad alanları bu NuGet paketinde bulunan derlemede bulunur: Microsoft.CrmSdk.Data.

Çekirdek platformda yapılan değişiklikler

Standart Dataverse başvuru türlerinde yapılan aşağıdaki değişiklikler sanal tabloları destekler.

Yeni tablolar

Dataverse, sanal tablo veri sağlayıcılarını ve kaynaklarını şu tablolar olarak kullanıma sunar: EntityDataProvider ve EntityDataSource.

Yeni tablo tanımı özellikleri

Sınıfına EntityMetadata dört yeni özellik eklendi:

Özellik Açıklama
DataProviderId İlişkili sanal tablo veri sağlayıcısını tanımlayan GUID
DataSourceId İlişkili sanal tablo veri kaynağını tanımlayan GUID
ExternalName Dış veri kaynağında bu türün adı
ExternalCollectionName Bu tür için çoğul ad, kullanıcı arabiriminde ve OData erişimini desteklemek için kullanılır

sınıfına AttributeMetadata iki yeni özellik eklendi:

Özellik Açıklama
ExternalName Dış veri kaynağındaki türün adı
IsDataSourceSecret Alanın hassas bilgiler içerip içermediğini gösterir

özelliği ExternalName ve OptionMetadata sınıflarına OptionSetMetadata da eklendi. Bu dış adlar, dış veri kaynağında ilişkili türün adını belirterek dış veri kaynağı eşlemesine yardımcı olur. Bu özellikler yalnızca sanal tablolar için kullanılır. Yerleşik veya standart bir özel varlık tipi için bu dış adlar null olmaktadır.

Sanal tablo oluşturma

Program aracılığıyla sanal tablo türü oluşturma yaklaşımı, aşağıdaki standart özel varlık türü oluşturma işleminden biraz farklıdır:

  • Oluşturma zamanında ilişkili veri sağlayıcısını (ve isteğe bağlı olarak veri kaynağını) biliyorsanız, bu değerleri belirtin.
  • Eğer bu tür için veri sağlayıcısını bilmiyorsanız, DataProviderId ayarlamak için 7015A531-CC0D-4537-B5F2-C882A1EB65AD değerini ve DataSourceId ayarlamak için null değerini kullanın. Çalışma zamanında bu tür örnekleri kullanmadan önce, bu özelliklere uygun değerler atayın.

Eklentiyi kaydettiğinizde , EntityDataProvider ve isteğe bağlı olarak EntityDataSourceolmak üzere iki yeni tablo oluşturursunuz. İlgili kimlikleri olan entitydataproviderid ve entitydatasourceid, bu gerekli GUID'leri temsil eder. (Aksi takdirde, geliştiricilerin bu özel türlere doğrudan erişmesi nadiren gerekir.) DataSource'un, ilgili DataProvider türüyle eşleşmezse çalışma zamanı istisnası oluşturacak olan entitydataproviderid özelliğini içerdiğine dikkat edin.

Uyarı

Standart (sanal olmayan) tabloların ilişkili DataProviderId değerlerine sahip olması ve DataSourceId varsayılan değerlerine ()null ayarlanması gerekir, aksi takdirde çalışma zamanı özel durumu oluşturulur. Oluşturulduktan sonra, sanal olmayan bir türden sanal türe veya tersine dönüştüremezsiniz.

Tablo tanımı özellik davranışı değişiklikleri

Aşağıdaki tabloda, standart EntityMetadata özelliklerinin sanal tablolara uygulandığında davranışının nasıl değiştiği ayrıntılı olarak yer alır. Bazı özellikler sanal tablolar için geçerli değildir, diğerleri ise kapsam veya değer açısından sınırlıdır.

Meta Veri Özelliği Geçerli midir? Notlar
ActivityTypeMask geçersiz Her zaman 0
Özellikler geçerli
AutoCreateAccessTeams geçersiz Her zaman false
AutoRouteToOwnerQueue geçersiz Daima yanlış, kuyruklar desteklenmez.
CanBeInManyToMany geçerli
CanBePrimaryEntityInRelationship geçerli
CanBeRelatedEntityInRelationship geçerli
CanChangeHierarchicalRelationship geçersiz Daima yanlıştır, hiyerarşik ilişkiler desteklenmez.
CanChangeTrackingBeEnabled geçersiz Her zaman false, değişiklik izleme ve denetim değerleri desteklenmez.
CanCreateAttributes geçerli
CanCreateCharts geçersiz Her zaman false
CanCreateForms geçerli
CanCreateViews geçerli
CanEnableSyncToExternalSearchIndex geçersiz Her zaman false
CanModifyAdditionalSettings geçerli
CanTriggerWorkflow geçersiz Her zaman yanlış, iş akışları tetiklenemez.
ChangeTrackingEnabled geçersiz Her zaman false
CollectionSchemaName geçerli
DaysSinceRecordLastModified geçersiz Her zaman null veya 0
Açıklama geçerli
DisplayCollectionName geçerli
Gösterim Adı geçerli
EnforceStateTransitions geçersiz StateCode ve Status desteklenmez.
EntityColor geçerli
EntityHelpUrl geçerli
EntityHelpUrlEnabled geçerli
EntitySetName geçerli
ExtensionData geçersiz Kullanım dışı özelliği
HasChanged geçerli
IconLargeName geçerli
IconMediumName geçerli
IconSmallName geçerli
IntroducedVersion geçerli
IsActivity geçersiz Her zaman yanlıştır, etkinlikler desteklenmez.
IsActivityParty geçersiz Her zaman false
IsAIRUpdated geçersiz Kullanım Dışı
IsAuditEnabled geçersiz Her zaman yanlıştır, denetim desteklenmez.
IsAvailableOffline geçersiz Her zaman yanlış, çevrimdışı kullanım desteklenmez.
IsBusinessProcessEnabled geçersiz Her zaman yanlıştır, iş süreçleri desteklenmez.
IsChildEntity geçersiz Her zaman yanlış, tüm sanal tablolar organizasyon tarafından sahiplenilmiştir.
IsConnectionsEnabled geçerli
IsCustomEntity geçerli
Özelleştirilebilir geçerli
IsDocumentManagementEnabled geçerli
IsDocumentRecommendationsEnabled geçersiz Bu özellik, her zaman yanlış olarak değerlendirilir ve desteklenmemektedir.
IsDuplicateDetectionEnabled geçersiz Her zaman yanlıştır, ancak veri kaynağında yinelenen algılama gerçekleştirilebilir.
IsEnabledForCharts sınırlı Yalnızca desteklenen Fetch yan tümceleri için.
IsEnabledForTrace geçerli
IsImportable geçerli
IsInteractionCentricEnabled geçerli
IsIntersect geçerli
IsKnowledgeManagementEnabled geçersiz Her zaman yanlıştır, bilgi yönetimi tümleştirmesi desteklenmez.
IsMailMergeEnabled geçerli
IsManaged geçerli
IsMappable geçerli
IsOfflineInMobileClient geçersiz Her zaman "false" olarak değerlendirilir; sanal tablo değerleri çevrimdışı kullanım için önbelleğe alınmaz.
IsOneNoteIntegrationEnabled geçerli
IsOptimisticConcurrencyEnabled geçersiz Veri kaynağında her zaman false, eşzamanlılık uygulanmalıdır.
IsPrivate geçerli
IsQuickCreateEnabled geçerli
IsReadOnlyInMobileClient geçerli
IsRenameable geçerli
IsSLAEnabled geçersiz Her zaman false
IsStateModelAware geçersiz
IsValidForAdvancedFind geçerli
IsValidForQueue geçerli
IsVisibleInMobile geçerli
IsVisibleInMobileClient geçerli
Anahtarlar geçersiz Alternatif anahtarlar desteklenmiyor
LogicalCollectionName geçerli
LogicalName geçerli
ManyToManyRelationships geçerli
ManyToOneRelationships geçerli İki sanal tablo arasında desteklenmez.
MetadataId geçerli
MobileOfflineFilters geçersiz Her zaman yanlış, çevrimdışı kullanım desteklenmez.
ObjectTypeCode geçerli
OneToManyRelationships geçerli
OwnershipType geçersiz Her zaman OrganizationOwned
PrimaryIdAttribute geçerli
PrimaryImageAttribute geçerli
PrimaryNameAttribute geçerli
Ayrıcalıklar geçersiz
RecurrenceBaseEntityLogicalName geçersiz
ReportViewName geçersiz
SchemaName geçerli
SyncToExternalSearchIndex geçersiz

Sütun tanımı özellik davranışı değişiklikleri

Aşağıdaki tabloda, standart AttributeMetadata özelliklerinin sanal tablolara uygulandığında davranışının nasıl değiştiği açıklanmaktadır. Bazı özellikler sanal tablolar için geçerli değildir, diğerleri ise sınırlı kapsama veya değere sahiptir.

Meta Veri Özelliği Geçerli midir? Notlar
ColumnNumber geçersiz
DeprecatedVersion geçerli
Açıklama geçerli
Gösterim Adı geçerli
EntityLogicalName geçerli
ExtensionData geçersiz
HasChanged geçerli
InheritsFrom geçerli
IntroducedVersion geçerli
IsAuditEnabled geçersiz Her zaman yanlıştır, denetim desteklenmez.
IsCustomAttribute geçerli
Özelleştirilebilir geçerli
IsFilterable geçerli
IsGlobalFilterEnabled geçerli
IsLogical geçerli
IsManaged geçerli
IsPrimaryId geçerli
IsPrimaryName geçerli
IsRenameable geçerli
IsSearchable geçerli
IsSecured geçersiz Her zaman false, alan düzeyinde güvenlik desteklenmez.
IsSortableEnabled geçerli
IsValidForAdvancedFind geçerli
IsValidForCreate geçerli
IsValidForRead (Okuma İçin Geçerli) geçerli
IsValidForUpdate geçerli
LinkedAttributeId geçerli
LogicalName geçerli
MetadataId geçerli
Gerekli Seviye geçerli
SchemaName geçerli
KaynakTürü geçersiz Her zaman 0, hesaplanan veya toplama değerleri desteklenmez.

Ayrıca bkz.

Sanal varlıkları kullanmaya başlama
Özel sanal tablo veri sağlayıcıları
Örnek: Genel sanal tablo veri sağlayıcısı eklentisi