我正在使用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中设置以检索完整数据?
从您的查询中删除query.Distinct = true;
。
你不能直接这样做,你首先需要在Base64中转换documentbody然后将base64转换为string这里是示例代码
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);