C# 如何在早期绑定中为状态代码上的QueryExpression创建ConditionExpression?

C# 如何在早期绑定中为状态代码上的QueryExpression创建ConditionExpression?,c#,dynamics-crm-2011,query-expressions,C#,Dynamics Crm 2011,Query Expressions,在late bound中,我会使用类似这样的方法来添加一个只获取活动记录的条件 newconditionexpression { AttributeName=“statecode”, Operator=ConditionOperator.NotEqual, 值={SomeClass.Active} } 但我如何在“晚绑定”中表达这一点 还有,为什么不使用int 创建将属性值与枚举(如状态代码)进行比较的条件时,必须使用ToString方法将值转换为字符串 差不多 ConditionExpres

在late bound中,我会使用类似这样的方法来添加一个只获取活动记录的条件

newconditionexpression
{
AttributeName=“statecode”,
Operator=ConditionOperator.NotEqual,
值={SomeClass.Active}
}
但我如何在“晚绑定”中表达这一点

还有,为什么不使用int

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

差不多

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
};
应该行得通

编辑:
另一个选项是将枚举强制转换为int:
Values={(int)SomeEnum.Active}

我不明白为什么。如果我们使用字符串“Active”,我们不应该得到与使用enum(int)相同的行为。另外,你使用枚举让我怀疑你说的是早期绑定。是这样吗?我都不:)在SDK代码中强制转换枚举时一定有问题。我提到了enum,只是想指出,您可以创建自己的enum,以避免硬编码字符串或int。statecode和statuscode上的条件同时接受int和string,不要问我为什么,但可以工作