文章目录
1. OrganizationRequestCollection 简介
OrganizationRequestCollection 链接 : OrganizationRequestCollection
OrganizationRequestCollection 类:
public ref class OrganizationRequestCollection sealed :
Microsoft::Xrm::Sdk::DataCollection<Microsoft::Xrm::Sdk::OrganizationRequest ^>
继承层次:
Collection<T> -> DataCollection<OrganizationRequest> -> OrganizationRequestCollection
Collection提供了操作集合的基类,并且提供了基础的增删改查方法, DataCollection<> 继承了 Collection的
同时自己也提供了一些扩展方法, OrganizationRequest 是用于与数据库数据请求与交互的基类。
OrganizationRequestCollection 综上可知,其是大批量事务执行的容器,可以用于储存多个基本的Organization
Request。常可以用于大批量的事务操作执行,提升与数据库的执行效率.
使用方法:
基本单个的OrganizationRequest可以直接通过 IOrganizationService.Execute(OrganizationRequest) Method
可以通过 IOrganizationService直接执行即可
对于OrganizationRequestCollection这个内部为多个请求所组成的数据请求集合,系统提供了继承Organization
Request的 ExecuteMultipleRequest 类,该类用于大批量的数据请求执行。
2. OrganizationRequestCollection
服务数据请求的基类 OrganizationRequest, 接下来逐个介绍常用的该基类的实现类,介绍其相关特性。
OrganizationRequest 链接 : OrganizationRequest Class
2.1 OrganizationRequest 使用
CreateRequest
Guid guid = Guid.NewGuid();
Entity entity = new Entity("crda9_order");
entity["crda9_reason"] = "CreateReques 建立测试....";
entity.Id = guid;
CreateRequest request = new CreateRequest(){
Target = entity
};
OrganizationService.Execute(request);
UpdateRequest
Entity entity = new Entity("crda9_order");
entity["crda9_reason"] = "CreateReques 建立修改测试....";
entity.Id = new Guid("ba7cb4b9-8756-40de-9c73-18b6fa371bac");
UpdateRequest request = new UpdateRequest(){
Target = entity
};
OrganizationService.Execute(request);
RetrieveRequest
RetrieveRequest retrieveRequest = new RetrieveRequest() {
ColumnSet = new ColumnSet(true),
Target = new EntityReference("crda9_order", new Guid("ba7cb4b9-8756-40de-9c73-18b6fa371bac"))
};
var response = OrganizationService.Execute(retrieveRequest);
RetrieveRequest
DeleteRequest deleteRequest = new DeleteRequest() {
Target = new EntityReference("crda9_order", new Guid("5a987003-7edf-ee11-904c-002248ed45e4"))
};
var response = OrganizationService.Execute(deleteRequest);
2.2 OrganizationRequestCollection 使用
修改类操作通常中间不会进行查询操作,因为是批量执行,无法在批量执行前获取查询的值再进行处理。
Entity entity = new Entity("crda9_order") { Id = Guid.NewGuid() };
entity["crda9_reason"] = "建立01..";
CreateRequest createRequest = new CreateRequest() {Target = entity};
orColl.Add(createRequest);
entity = new Entity("crda9_order") { Id = new Guid("ba7cb4b9-8756-40de-9c73-18b6fa371bac") };
entity["crda9_reason"] = "修改02...";
UpdateRequest updateRequest = new UpdateRequest() { Target = entity};
orColl.Add(updateRequest);
ExecuteMultipleRequest emRequest = new ExecuteMultipleRequest() {
Settings = new ExecuteMultipleSettings() {
ContinueOnError = true,
ReturnResponses = true
},
Requests = orColl
};
var response = OrganizationService.Execute(emRequest);