如何解决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 entity) => {
        var key = entity.GetAttributeValue<string>("name");
        var intValue = int.Parse(key.Split('-').Last());
        return intValue;
    });
}

 

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

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

 

 

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

 

posted @ 2020-07-09 17:00  RichardLiu  阅读(613)  评论(0)    收藏  举报