zoukankan      html  css  js  c++  java
  • Dynamics CRM

          在 C# Plugin 中,可以使用 Query Expression 來做數據查詢,由於用 Linq 來查詢時,在數據量比較大的時候,ToList() 会导致内存问题,在此我推薦使用 QueryExpression。以下為代碼示例:

     1 QueryExpression q = new QueryExpression("account");
     2 q.ColumnSet = new ColumnSet(true);//要查詢的主表字段, true 代表全部,也可以逐個錄入字段
     3 q.Criteria.AddCondition("name", ConditionOperator.NotNull);
     4 
     5 //聯表查詢
     6 LinkEntity linkToContact = new LinkEntity();
     7 linkToContact .LinkFromEntityName = Account.EntityLogicalName;//主表
     8 linkToContact .LinkFromAttributeName = "accountid";
     9 linkToContact .LinkToEntityName = Contact.EntityLogicalName;//子表
    10 linkToContact .LinkToAttributeName = "cus_account_no";
    11 linkToContact .Columns = new ColumnSet("cus_remark");//要查詢的子表字段
    12 //寫法2
    13 //linkToContact .Columns.AddColumn("cus_remark");
    14 linkToContact .EntityAlias = "temp";//給子表設置別名
    15 linkToContact .LinkCriteria.AddCondition("statecode", ConditionOperator.Equal, 0);
    16 linkToContact .JoinOperator = JoinOperator.Inner;
    17 //也可添加排序,低版本sdk可能無法使用
    18 linkToContact .Orders.Add(new OrderExpression("cus_record_no", OrderType.Descending));
    19 
    20 //分頁設置
    21 PagingInfo pageInfo= new PagingInfo();
    22 pageInfo.Count = 5000;//最大值每頁5000條記錄
    23 pageInfo.PageNumber = 1;
    24 pageInfo.PagingCookie = null;
    25 
    26 q.PageInfo = pageInfo;
    27 while (true)
    28 {
    29     var resultList = service.RetrieveMultiple(q);
    30     foreach (var item in resultList.Entities)
    31     {
    32         //do something
    33         //讀取主表數據
    34         string donorNo = item["cus_donor_no"].ToString();
    35         //讀取子表數據
    36         string remark = ((AliasedValue)item["temp.cus_remark"]).Value.ToString();
    37     }
    38 
    39     if (resultList.MoreRecords)//如果後續還存在記錄,則查詢下一頁,否則結束查詢
    40     {
    41         q.PageInfo.PageNumber++;
    42         q.PageInfo.PagingCookie = resultList.PagingCookie;
    43     }
    44     else
    45         break;
    46 }
  • 相关阅读:
    java导入导出下载Excel,xls文件(带下拉框)
    java操作poi生成excel.xlsx(设置下拉框)下载本地和前端下载
    layui文件上传中如何先判断后再弹出文件选择框
    下载excle文件之工具
    eclipse 配置JDK
    layer实现关闭弹出层刷新父界面功能详解
    兼容ie9以下支持媒体查询和html5
    layui学习地址
    MATLAB拟合正态分布
    Matlab文件操作
  • 原文地址:https://www.cnblogs.com/Sunny20181123/p/15308147.html
Copyright © 2011-2022 走看看