2013-08-17 4 views
2

늦은 시각에만 활성 레코드를 가져 오는 조건을 추가하기 위해 이와 같은 것을 사용합니다.초기 바인딩의 statecode에서 QueryExpression의 ConditionExpression을 만드는 방법은 무엇입니까?

new ConditionExpression 
{ 
    AttributeName = "statecode", 
    Operator = ConditionOperator.NotEqual, 
    Values = { SomeClass.Active } 
} 

그러나 어떻게 늦은 시각에 표현하나요?

또한 대신 MS demand to cast it to String 인 이유는 무엇입니까?

특성 값을 상태 코드와 같은 열거 형과 비교하는 조건을 만들 때 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 
}; 

같은

답변

5

뭔가 잘 작동합니다.

편집 : Values = {(int)SomeEnum.Active}

+0

내가 왜하지 않습니다 다른 옵션은 int로 열거 캐스팅하는 것입니다. "Active"문자열을 사용하면 열거 형 (* int *)을 사용할 때와 동일한 동작을해서는 안됩니다. 또한 열거 형을 사용하면 초기 경계에 서 있다고 의심하게됩니다. 그렇지? –

+0

나도 마찬가지 :) SDK 코드에서 enum을 캐스팅 할 때 약간의 문제가 있어야합니다. 열거 형 (enum)에 대해 언급했는데 문자열이나 int 열을 직접 코딩하는 것을 피하기 위해 열거 형 열거 형을 만들 수 있다고 지적했습니다. – MarioZG

+2

상태 코드 및 상태 코드 조건에서 int와 string을 모두 허용하지만 이유는 묻지 않지만 작동 함 –