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 }
  • 相关阅读:
    MySQL全面瓦解20:可编程性之流程控制语句
    MySQL全面瓦解19:游标相关
    MySQL全面瓦解18:自定义函数
    MySQL全面瓦解17:触发器相关
    MySQL全面瓦解16:存储过程相关
    MySQL全面瓦解15:视图
    MySQL全面瓦解14:事务
    MySQL全面瓦解13:系统函数相关
    MySQL全面瓦解12:连接查询的原理和应用
    MySQL全面瓦解11:子查询和组合查询
  • 原文地址:https://www.cnblogs.com/Sunny20181123/p/15308147.html
Copyright © 2011-2022 走看看