Cân nhắc về API đối với bảng ảo

Hai loại thay đổi lớn đối với hệ thống định nghĩa bảng được liên kết với việc giới thiệu bảng ảo (còn được gọi là thực thể ảo) trong Microsoft Dataverse:

  • Bổ sung một assembly, namespace, class và các loại khác mới để hỗ trợ phát triển các nhà cung cấp dữ liệu bảng ảo tùy chỉnh
  • Các thay đổi đối với nền tảng cốt lõi, bao gồm một số thuộc tính khác để hỗ trợ ánh xạ nguồn dữ liệu bên ngoài và sửa đổi hành vi của các thuộc tính bảng và cột hiện có phản ánh các hạn chế của việc triển khai ban đầu của tính năng này

Lắp ráp SDK dữ liệu Dynamics 365

Cụm SDK dữ liệu Dynamics 365, Microsoft.Xrm.Sdk.Data.dll, chứa các loại để hỗ trợ tạo các nhà cung cấp dữ liệu bảng ảo tùy chỉnh. Nó bao gồm các không gian tên sau:

Không gian tên Sự miêu tả
Microsoft.Xrm.Sdk.Data Không gian tên cơ sở chứa một vài kiểu phổ biến, chẳng hạn như liệt kê AllowedQueryOptions
Microsoft.Xrm.Sdk.Data.CodeGen Chứa các lớp và giao diện hỗ trợ phản xạ động, khớp kiểu và tạo mã. Chủ yếu được sử dụng bởi công cụ nhà cung cấp nội bộ.
Microsoft.Xrm.Sdk.Data.Converters Một tập hợp các lớp để chuyển đổi các loại XRM tiêu chuẩn sang các loại cơ bản .NET tương ứng của chúng
Microsoft.Xrm.Sdk.Data.Exceptions Một tập hợp các lớp ngoại lệ đại diện cho các lỗi có thể xảy ra trong quá trình phân giải giá trị thời gian chạy. Tất cả đều có nguồn gốc từ Microsoft.Xrm.Sdk.SdkExceptionBase.
Microsoft.Xrm.Sdk.Data.Expressions Các lớp để giúp triển khai các chuyển đổi truy vấn được hỗ trợ, chẳng hạn như FILTER, JOIN và ORDER.
Microsoft.Xrm.Sdk.Data.Mappings Các lớp và giao diện xây dựng ánh xạ từ các loại định nghĩa bảng ảo sang các loại bên ngoài.
Microsoft.Xrm.Sdk.Data.Visitors Các lớp triển khai mẫu khách truy cập để thực hiện các thao tác cụ thể trên tham số QueryExpression được chuyển đến nhà cung cấp dữ liệu trong các yêu cầu RetrieveMultiple. Cung cấp hỗ trợ cụ thể cho cả truy vấn chung và xử lý dựa trên LINQ. Các lớp này có nguồn gốc từ Microsoft.Xrm.Sdk.Query.QueryExpressionVisitorBase.

Các không gian tên này nằm trong cụm có trong gói NuGet này: Microsoft.CrmSdk.Data.

Thay đổi đối với nền tảng cốt lõi

Các thay đổi sau đây đối với các loại tham chiếu Dataverse tiêu chuẩn hỗ trợ bảng ảo.

Bảng mới

Dataverse hiển thị các nguồn và nhà cung cấp dữ liệu bảng ảo dưới dạng các bảng sau: EntityDataProvider và EntityDataSource.

Thuộc tính định nghĩa bảng mới

Bốn thuộc tính mới đã được thêm vào EntityMetadata lớp:

Property Sự miêu tả
DataProviderId GUID xác định nhà cung cấp dữ liệu bảng ảo được liên kết
DataSourceId GUID xác định nguồn dữ liệu bảng ảo được liên kết
ExternalName Tên cho loại này trong nguồn dữ liệu bên ngoài
ExternalCollectionName Tên số nhiều cho loại này, được sử dụng trong giao diện người dùng và để hỗ trợ quyền truy cập OData

Hai thuộc tính mới đã được thêm vào AttributeMetadata lớp:

Property Sự miêu tả
ExternalName Tên của loại trong nguồn dữ liệu bên ngoài
IsDataSourceSecret Cho biết trường có chứa thông tin nhạy cảm hay không

Thuộc tính này ExternalName cũng được thêm vào các OptionMetadata lớp và OptionSetMetadata . Các tên bên ngoài này giúp ánh xạ nguồn dữ liệu bên ngoài, bằng cách chỉ định tên của loại liên kết trong nguồn dữ liệu bên ngoài. Các thuộc tính này chỉ được sử dụng cho các bảng ảo. Đối với loại thực thể tùy chỉnh tích hợp sẵn hoặc tiêu chuẩn, các tên bên ngoài này phải là null.

Tạo bảng ảo

Cách tiếp cận để tạo một loại bảng ảo theo chương trình hơi khác so với việc tạo kiểu thực thể tùy chỉnh tiêu chuẩn ở chỗ:

  • Nếu bạn biết nhà cung cấp dữ liệu được liên kết (và nguồn dữ liệu tùy chọn) tại thời điểm tạo, hãy chỉ định các giá trị này.
  • Nếu bạn không biết nhà cung cấp dữ liệu cho loại này, hãy đặt DataProviderId thành 7015A531-CC0D-4537-B5F2-C882A1EB65AD và đặt DataSourceId thành null. Trước khi bạn sử dụng các phiên bản thuộc loại này trong thời gian chạy, hãy gán các thuộc tính này các giá trị thích hợp.

Khi đăng ký một plugin, bạn tạo hai bảng mới, EntityDataProvider và tùy chọn EntityDataSource. ID tương ứng của chúng và entitydataprovideridentitydatasourceid, đại diện cho các GUID bắt buộc này. (Nếu không, các nhà phát triển hiếm khi cần truy cập trực tiếp vào các loại tùy chỉnh này.) Lưu ý rằng DataSource chứa thuộc tính entitydataproviderid phải khớp với loại DataProvider tương ứng hoặc ngoại lệ thời gian chạy được đưa ra.

Cảnh báo

Các bảng tiêu chuẩn (phi ảo) phải có các giá trị được liên kết DataProviderId và DataSourceId đặt thành giá trị mặc định (null), nếu không một ngoại lệ thời gian chạy sẽ được đưa ra. Sau khi tạo, bạn không thể chuyển đổi từ loại không ảo sang loại ảo hoặc ngược lại.

Thay đổi hành vi thuộc tính định nghĩa bảng

Bảng sau đây trình bày chi tiết cách hành vi của thuộc tính EntityMetadata tiêu chuẩn thay đổi khi bạn áp dụng chúng cho bảng ảo. Một số thuộc tính không hợp lệ đối với bảng ảo, trong khi những thuộc tính khác bị giới hạn về phạm vi hoặc giá trị.

Thuộc tính siêu dữ liệu Áp dụng? Ghi chú
ActivityTypeMặt nạ không hợp lệ Luôn luôn 0
Thuộc tính Hợp lệ
Tự động tạoNhóm truy cập không hợp lệ Luôn sai
AutoRouteToOwnerQueue không hợp lệ Luôn sai, hàng đợi không được hỗ trợ.
CanBeInManyToMany Hợp lệ
CanBePrimaryEntityInRelationship Hợp lệ
CanBeRelatedEntityInRelationship Hợp lệ
CanChangeMối quan hệ phân cấp không hợp lệ Luôn luôn sai, các mối quan hệ phân cấp không được hỗ trợ.
CanChangeTrackingBeEnabled không hợp lệ Luôn luôn sai, theo dõi thay đổi và các giá trị kiểm tra không được hỗ trợ.
Thuộc tính CanCreate Hợp lệ
CanCreateBiểu đồ không hợp lệ Luôn sai
Có thể tạo biểu mẫu Hợp lệ
CanCreateViews Hợp lệ
CanEnableSyncToExternalSearchIndex không hợp lệ Luôn sai
Cài đặt có thể sửa đổi bổ sung Hợp lệ
Quy trình làm việc CanTriggerWorkflow không hợp lệ Luôn sai, quy trình làm việc không thể được kích hoạt.
ChangeTrackingĐã bật không hợp lệ Luôn sai
Tên Lược đồ Bộ sưu tập Hợp lệ
DaysSinceRecordLastModified không hợp lệ Luôn rỗng hoặc 0
Sự miêu tả Hợp lệ
DisplayCollectionName Hợp lệ
Tên hiển thị Hợp lệ
Thực thi Chuyển đổi trạng thái không hợp lệ StateCode và Status không được hỗ trợ.
Màu thực thể Hợp lệ
EntityHelpUrl Hợp lệ
EntityHelpUrlEnabled Hợp lệ
Tên tập trung thực thể Hợp lệ
Dữ liệu mở rộng không hợp lệ Thuộc tính không dùng nữa
Đã thay đổi Hợp lệ
IconLargeName Hợp lệ
IconMediumName Hợp lệ
Biểu tượngTên nhỏ Hợp lệ
Phiên bản giới thiệu Hợp lệ
Hoạt động không hợp lệ Luôn sai, các hoạt động không được hỗ trợ.
IsActivityParty không hợp lệ Luôn sai
IsAIRUpdated không hợp lệ Không dùng nữa
IsAuditEnabled không hợp lệ Luôn sai, kiểm tra không được hỗ trợ.
IsAvailableNgoại tuyến không hợp lệ Luôn sai, sử dụng ngoại tuyến không được hỗ trợ.
IsBusinessProcessEnabled không hợp lệ Luôn sai, các quy trình kinh doanh không được hỗ trợ.
IsChildEntity không hợp lệ Luôn sai, tất cả các bảng ảo đều thuộc sở hữu của tổ chức.
IsConnectionsEnabled Hợp lệ
IsCustomEntity Hợp lệ
Có thể tùy chỉnh Hợp lệ
IsDocumentManagementEnabled Hợp lệ
IsDocumentRecommendationsEnabled không hợp lệ Luôn sai, tính năng mới này không được hỗ trợ.
IsDuplicateDetectionEnabled không hợp lệ Luôn sai, nhưng phát hiện trùng lặp có thể được thực hiện tại nguồn dữ liệu.
IsEnabledForCharts hạn chế Chỉ dành cho các mệnh đề Tìm nạp được hỗ trợ.
IsEnabledForTrace Hợp lệ
Không thể di chuyển Hợp lệ
IsInteractionCentricEnabled Hợp lệ
IsIntersect Hợp lệ
IsKnowledgeManagementEnabled không hợp lệ Luôn sai, tích hợp quản lý tri thức không được hỗ trợ.
IsMailMergeEnabled Hợp lệ
Được quản lý Hợp lệ
Có thể kết xuất Hợp lệ
IsOfflineInMobileClient không hợp lệ Luôn sai, các giá trị bảng ảo không được lưu vào bộ nhớ đệm để sử dụng ngoại tuyến.
IsOneNoteIntegrationEnabled Hợp lệ
IsOptimisticConcurrencyEnabled không hợp lệ Luôn sai, đồng thời phải được thực hiện trong nguồn dữ liệu.
Riêng tư Hợp lệ
IsQuickCreateEnabled Hợp lệ
IsReadOnlyInMobileClient Hợp lệ
Có thể đổi tên Hợp lệ
IsSLAEnabled không hợp lệ Luôn sai
IsStateModelAware không hợp lệ
IsValidForAdvancedTìm Hợp lệ
IsValidForQueue Hợp lệ
IsVisibleInMobile Hợp lệ
IsVisibleInMobileClient Hợp lệ
Phím không hợp lệ Khóa thay thế không được hỗ trợ
Tên bộ sưu tập logic Hợp lệ
Tên logic Hợp lệ
Mối quan hệ ManyToMany Hợp lệ
Mối quan hệ ManyToOne Hợp lệ Không được hỗ trợ giữa hai bảng ảo.
Mã siêu dữ liệu Hợp lệ
Bộ lọc MobileOffline không hợp lệ Luôn sai, sử dụng ngoại tuyến không được hỗ trợ.
Mã ObjectTypeCode Hợp lệ
OneToManyMối quan hệ Hợp lệ
Loại quyền sở hữu không hợp lệ Luôn sở hữu tổ chức
Thuộc tính PrimaryId Hợp lệ
Thuộc tính hình ảnh chính Hợp lệ
Thuộc tính PrimaryName Hợp lệ
Quyền không hợp lệ
Tên RecurrenceBaseEntityLogicalName không hợp lệ
Tên chế độ xem báo cáo không hợp lệ
Tên lược đồ Hợp lệ
SyncToExternalSearchIndex không hợp lệ

Thay đổi hành vi thuộc tính định nghĩa cột

Bảng sau đây giải thích cách hành vi của các thuộc tính AttributeMetadata tiêu chuẩn thay đổi khi bạn áp dụng chúng cho các bảng ảo. Một số thuộc tính không hợp lệ cho bảng ảo, trong khi những thuộc tính khác có phạm vi hoặc giá trị hạn chế.

Thuộc tính siêu dữ liệu Áp dụng? Ghi chú
Số cột không hợp lệ
Phiên bản không dùng nữa Hợp lệ
Sự miêu tả Hợp lệ
Tên hiển thị Hợp lệ
EntityLogicalName Hợp lệ
Dữ liệu mở rộng không hợp lệ
Đã thay đổi Hợp lệ
Kế thừa từ Hợp lệ
Phiên bản giới thiệu Hợp lệ
IsAuditEnabled không hợp lệ Luôn sai, kiểm tra không được hỗ trợ.
Thuộc tính IsCustomAttribute Hợp lệ
Có thể tùy chỉnh Hợp lệ
Có thể lọc được Hợp lệ
IsGlobalFilterEnabled Hợp lệ
Là hợp lý Hợp lệ
Được quản lý Hợp lệ
IsPrimaryId Hợp lệ
IsPrimaryName Hợp lệ
Có thể đổi tên Hợp lệ
Có thể tìm kiếm được Hợp lệ
Được bảo đảm không hợp lệ Luôn sai, bảo mật cấp trường không được hỗ trợ.
IsSortableEnabled Hợp lệ
IsValidForAdvancedTìm Hợp lệ
IsValidForCreate Hợp lệ
IsValidForRead Hợp lệ
IsValidForUpdate Hợp lệ
LinkedAttributeId Hợp lệ
Tên logic Hợp lệ
Mã siêu dữ liệu Hợp lệ
Cấp độ bắt buộc Hợp lệ
Tên lược đồ Hợp lệ
Loại nguồn không hợp lệ Luôn luôn không hỗ trợ các giá trị 0, tính toán hoặc tổng số.

Xem thêm

Bắt đầu với thực thể ảo
Nhà cung cấp dữ liệu bảng ảo tùy chỉnh
Mẫu: Trình cắm thêm nhà cung cấp dữ liệu bảng ảo chung