如何解决Dynamics CRM 一次最多只能查询5000条数据的问题

最近有好多小伙伴问如何能解决一次查询最多只能查询5000条数据的问题,

其实最简单粗暴的方法就是更新CRM Config DB中的Column Name为TotalRecordCountLimit的个数限制。

但其实通常情况下,我不会推荐这种做法,因为我是本着尽量不手动更新Database中配置相关内容的原则,尤其是微软的。至于原因嘛,你懂滴~~

那咱们应该如何通过正路子解决这个问题呢?

可以通过OrganizationServiceContext来解决!

比如,我举个栗子:我想要从logicalname为record的Entity从取出name最大的那条数据,name的格式为(prefix-12345),则咱们可以这样写:

using(var context = new OrganizationServiceContext(OrganizationService)) {
    var j = context.CreateQuery("record").Max((Entity entity) => {
        var key = entity.GetAttributeValue<string>("name");
        var intValue = int.Parse(key.Split('-').Last());
        return intValue;
    });
}

 

至于Linq的更多使用方法就自行发挥吧。

其实这东西通过反编译之后,咱们可以看到,

如何解决Dynamics CRM 一次最多只能查询5000条数据的问题_第1张图片

 

 

内部其实就是分页将所有数据查回来的,只是封装到了SDK内部,这样就跳出了TotalRecordCountLimit。

 

你可能感兴趣的:(如何解决Dynamics CRM 一次最多只能查询5000条数据的问题)