2012-06-15 4 views
2

두 개의 열 값을 새 값으로 결합하는 CRM SDK QueryExpression은 어떻게 작성합니까? MySQL의에서, 내 질문은 같을 것이다C# CRM SDK 사용자 지정 열

C#에서
SELECT *, (`latest_maintenance`+`maintenance_interval`) as `next_maintenance` FROM `servers` ORDER BY `next_maintenance` DESC 

, 그러나 나는 단지 다음과 같이 관리해야 :

var retrieveRequest = new RetrieveMultipleRequest(); 

retrieveRequest.Query = new QueryExpression 
            { 
             EntityName = "server", 
             ColumnSet = new ColumnSet(new[] {"latest_maintenance", "maintenance_interval"}) 
            }; 

var crmReponse = (RetrieveMultipleResponse) service.Execute(retrieveRequest); 

가 어떻게 "latest_maintenance"결합 할 것입니다 및에 "maintenance_interval" "next_maintenace"를 사용하려면 OrderExpression을 사용할 수 있습니까?

편집 : Microsoft Dynamics CRM에 대한 간단한 문자열 기반 쿼리는 어떻게 작성합니까? 기본 방법보다 쉽고 이해하기 쉬운 방법처럼 보입니다.

답변

1

서버 측 코드 용으로 SDK를 사용하는 경우 선택은 QueryExpression 또는 FetchXml입니다. 어느 쪽도 네가 묻는 것을 네이티브로하지 않을 것이다.

QueryExpression을 사용하면 문자열이 아닌 입력 된 객체를 반환하므로 두 값을 연결하려면 저장할 컨테이너 (예 : 속성)가 필요합니다.

"주문 하시겠습니까?"열 1 다음에 열 2 만 주문할 수 있습니까? 나는. 유지 보수가 얼마 전에 수행되었지만, 유지 보수 간격이 그들이 이전 전에 시간이 오래 유지 된 것들 중 일부에 비해 유지 될 필요가 너무 낮은 경우

var myQueryExpression = new QueryExpression 
           { 
            EntityName = "server", 
            ColumnSet = new ColumnSet(new[]{ 
             "latest_maintenance", 
             "maintenance_interval"}) 
           }; 
myQueryExpression.AddOrder("latest_maintenance", OrderType.Ascending); 
myQueryExpression.AddOrder("maintenance_interval", OrderType.Ascending); 
+0

아니, 그건 제대로 항목을 정렬 할 것 . – arik

+0

이제 알겠습니다. 원래의 질문에 따르면 두 필드에 "합류"했습니다 (묵시적 연결). 날짜에 날짜 간격을 추가하고 새로 계산 된 날짜순으로 정렬하려고 함을 의미하는 것 같습니다. 이 시나리오에서 가장 쉽게 지원되는 솔루션은 "서버"엔티티에 "next maintenance"라는 새 속성을 작성하고 latest_maintenance 또는 maintenance_interval이 변경 될 때마다 플러그인을 통해 런타임에 해당 값을 계산하는 것입니다. –

+0

좋아, 어떻게 그럴 수 있니? 자동으로 계산할 다음 유지 관리가 필요합니다. 필드를 추가하는 방법을 알고 있습니다.) – arik

관련 문제