并非所有列都在插件中的`new ColumnSet(true)`上检索

时间:2012-10-25 21:37:13

标签: dynamics-crm dynamics-crm-2011 query-expressions

我正在构建以下查询。出于某种原因,它并没有带给我所有的领域。我检查了拼写,当我为这些字段分配值时,我甚至切换了名称,导致异常。所以我肯定知道它们存在并被使用。我正在为所有数据添加一个预映像到更新步骤,只是为了确定。

QueryExpression request = new QueryExpression
{
  EntityName = "myLogicalName",
  ColumnSet = new ColumnSet { AllColumns = true },
  Criteria =
  {
    Filters =
    {
      new FilterExpression
      {
        FilterOperator = LogicalOperator.Or,
        Conditions =
        {
          new ConditionExpression("someField", ConditionOperator.NotEqual, someValue),
          new ConditionExpression("someField", ConditionOperator.Equal, somValue)
        }
      }
    }
  }
};

EntityCollection result = Service.RetrieveMultiple(request);

我可能会错过什么?!

2 个答案:

答案 0 :(得分:3)

可能是因为;该字段没有应用值或字段级安全性。

作为一般方面,您应该避免使用AllColumns = true

答案 1 :(得分:1)

AllColumns属性设置为true与在sql中执行Select *基本相同。这些列不会添加到ColumnSet中,但它们将在查询表达式的结果中返回。