查询注释文档正文字段被截断为2000个字符

时间:2019-04-02 15:46:50

标签: dynamics-crm crm microsoft-dynamics dynamics-365 dynamics-crm-365

我正在使用CRM SDK通过实现以下代码从Dynamics 365 CRM中的注释表中获取数据。

                QueryExpression query = new QueryExpression("annotation");
                query.Distinct = true;
                query.ColumnSet.AllColumns = true;
                query.Criteria.AddCondition("annotationid", 
                ConditionOperator.Equal, "2A5C8C6C-4155-E911-9114-005056BE2027");
                EntityCollection PartyEnt = CRMUtilities.RetrieveMultiple(query);
                Entity Annotation = new Entity();
                if (PartyEnt.Entities.Count > 0)
                {
                    Annotation = PartyEnt.Entities.FirstOrDefault();
                    string documentBody = Annotation.Attributes["documentbody"].ToString()
                }

我成功获取了数据,但是有一定的限制!

我从批注中获取数据并将base64字符串保存在documentBody变量中,问题是它仅从documentBody属性中检索了2000个字符,但是在数据库中它具有2000个以上的字符。

帮帮我!

在CRM中是否需要设置任何内容来检索全部数据?

2 个答案:

答案 0 :(得分:0)

从您的查询中删除query.Distinct = true;

答案 1 :(得分:0)

您不能直接这样做, 您首先需要在Base64中转换documentbody,然后将该base64转换为字符串 这是示例代码

Annotation = PartyEnt.Entities.FirstOrDefault();
  //converting document body content to bytes              
byte[] fileinByte= Convert.FromBase64String(Annotation.Attributes["documentbody"].ToString());

//Converting to String
string fileContentinString = System.Text.Encoding.UTF8.GetString(fileinByte);