我有一个查询,通常用于从同一插件中的不同实体返回数据。在查询中,我选择使用 new ColumnSet(true) 返回所有列。
在大多数情况下,这没有任何问题,但我刚刚遇到一个实体,它未能带回许多字段。这些字段是使用单独的插件计算的,但这些值肯定似乎保存在记录本身上,因为它们在表单和视图中可见。但是,它们不会在查询中返回。
我尝试通过导入来创建自己的记录,我自己设置这些值,而不是通过插件。以这种方式完成后,确实可以找到这些值,但对于其他记录,它们仍然丢失。
我已经在下面复制了我的查询,以防有人发现它有问题。
//set up query for entity
QueryExpression query;
query = new QueryExpression();
query.EntityName = entityName;
query.ColumnSet = new ColumnSet(true);
query.PageInfo.ReturnTotalRecordCount = true;
//get the results
EntityCollection SourceRecords = new EntityCollection();
int pageNumber = 1;
RetrieveMultipleRequest req;
RetrieveMultipleResponse resp = new RetrieveMultipleResponse(); ;
do
{
query.PageInfo.Count = 5000;
query.PageInfo.PagingCookie = (pageNumber == 1) ? null : resp.EntityCollection.PagingCookie;
query.PageInfo.PageNumber = pageNumber++;
req = new RetrieveMultipleRequest();
req.Query = query;
resp = (RetrieveMultipleResponse)SourceOrgService.Execute(req);
SourceRecords.Entities.AddRange(resp.EntityCollection.Entities);
}
while (resp.EntityCollection.MoreRecords);