RetrieveMultiple不返回所有属性

时间:2012-01-17 10:23:47

标签: dynamics-crm dynamics-crm-4

我正在针对相当标准的CRM 4.0安装运行以下代码。

            List<ConditionExpression> cons = new List<ConditionExpression>();

            QueryExpression query = new QueryExpression();
            query.EntityName = "systemuser";

            cons.Add(new ConditionExpression());
            cons[cons.Count - 1].AttributeName = "isdisabled";
            cons[cons.Count - 1].Operator = ConditionOperator.Equal;
            cons[cons.Count - 1].Values = new object[] { false };

            FilterExpression filter = new FilterExpression();

            // Set the properties of the filter.
            filter.FilterOperator = LogicalOperator.And;
            filter.Conditions.AddRange(cons.ToArray());

            //query.ColumnSet = new AllColumns();
            query.ColumnSet = new ColumnSet(new string[]{"systemuserid","fullname","firstname","lastname"});
            query.Criteria = filter;
            query.Orders.Add(new OrderExpression("fullname", OrderType.Ascending));

            RetrieveMultipleRequest RMR = new RetrieveMultipleRequest();
            RMR.Query = query;
            RMR.ReturnDynamicEntities = true;

            RetrieveMultipleResponse resp = (RetrieveMultipleResponse)CRM.Execute(RMR);

由于某种原因,返回的动态实体列表仅包含systemuserid属性。如果我使用AllColumns(),我会得到一些列(绝不是全部),但仍然不包括fullname,firstname和lastname列。

有问题的记录肯定具有所请求字段的值。

有什么想法......?

1 个答案:

答案 0 :(得分:2)

已解决 - 一个系统用户拥有firstname,lastname和fullname的空白值 - 填充这些值使得查询开始为所有其他用户检索这些值。