Dynamics365 默认service.RetrieveMultiple查询超出 限制5000条如何解决

最近在做一个Dynamics365的项目,在用到D365标准功能查询的时候,针对数据量超出5000,默认情况下只返回5000的数据,那要如何解决这个问题呢?

我归纳总结了以下三个办法:

1.修改CRM ConfigDB的配置 字段TotalRecordCountLimit ,再重启IIS生效(不推荐,修改之后所有的查询都放开了,而且还无法确定是否多少够用,容易产生隐藏的坑)

以下是查询 默认最大条数SQL语句:

 1 select Id, ColumnName, IntColumn from CRM_CONFIG.dbo.DeploymentProperties where ColumnName='TotalRecordCountLimit' 

2.查询语句返回时,用官方方法查下该实体总条数,以判断是否继续查询(可用性低,主要是进行实体的全量数据查询,加条件的查询受限制)

static void OutputTotalRecordCount(IOrganizationService service, params string[] entityNames ) {

    var request = new RetrieveTotalRecordCountRequest { 
          EntityNames = entityNames
    };

    var response = (RetrieveTotalRecordCountResponse)service.Execute(request);

    foreach (var item in response.EntityRecordCountCollection) {                
        Console.WriteLine($"{item.Key} table has {item.Value} records.");            
    }

}

3.利用service.RetrieveMultiple(query) 返回的结果 results.MoreRecords 判断是否有更多的数据,用PagingInfo 对象进行分页查询(综上,比较推荐)

public static EntityCollection AllRecords(this IOrganizationService service, QueryExpression query)
        {
            var entityCollection = new EntityCollection();
            int queryCount = 5000;
            int pageNumber = 1;
            query.PageInfo = new PagingInfo
            {
                Count = queryCount,
                PageNumber = pageNumber,
                PagingCookie = null
            };

            do
            {
                EntityCollection results = service.RetrieveMultiple(query);
                if (results.Entities != null)
                {
                    entityCollection.Entities.AddRange(results.Entities);
                }
                if (results.MoreRecords)
                {
                    query.PageInfo.PageNumber++;
                    query.PageInfo.PagingCookie = results.PagingCookie;
                }
                else
                {
                    break;
                }
            } while (true);

            return entityCollection;
        }

  

posted @ 2025-08-29 14:57  勿悲勿急,戒骄戒躁  阅读(25)  评论(0)    收藏  举报