如何在早期绑定状态码上为QueryExpression创建ConditionExpression?

Kon*_*ten 3 c# query-expressions dynamics-crm-2011

在后期绑定我会使用这样的东西来添加一个只获得活动记录的条件.

new ConditionExpression
{
  AttributeName = "statecode",
  Operator = ConditionOperator.NotEqual,
  Values = { SomeClass.Active }
}
Run Code Online (Sandbox Code Playgroud)

但是我怎么在晚期表达呢?

另外,为什么MS要求将它转换为String而不是int

创建将属性值与枚举(例如状态代码)进行比较的条件时,必须使用ToString方法将值转换为字符串.

Mar*_*oZG 6

就像是

ConditionExpression condition1 = new Microsoft.Xrm.Sdk.Query.ConditionExpression
{
    AttributeName = "statecode",
    Operator = ConditionOperator.Equal,
    Values = { "Active" } //or SomeEnum.Active.ToString() if you want use good practice
};
Run Code Online (Sandbox Code Playgroud)

应该工作正常.

编辑:其他选项是将枚举转换为int: Values = {(int)SomeEnum.Active}

  • statecode和statuscode上的条件接受int和string,不要问我为什么但是有效 (2认同)