2012-06-15 2 views
2

Как создать CRM SDK QueryExpression, где значения двух столбцов объединены с новым? В MySQL, мой запрос будет выглядеть так:C# CRM SDK Пользовательские столбцы

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

В C#, однако, мне удалось только сделать следующее:

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?

EDIT: Как я могу сделать простой строковый запрос для Microsoft Dynamics CRM? Кажется, это проще и понятнее, чем их по умолчанию.

ответ

1

Если вы используете SDK для кода на стороне сервера, то ваш выбор - QueryExpression или FetchXml. Ни один из них не будет делать то, что вы просите, изначально.

Помните, что с QueryExpression вы возвращаете типизированные объекты, а не только строки, поэтому, если вы хотите объединить два значения, им нужен контейнер для хранения, то есть атрибут.

Можете ли вы не просто «заказать по» столбцу1, а затем колонку2? То есть

+0

Нет, это не будет правильно сортировать элементы там, где техническое обслуживание было сделано не так давно, интервал обслуживания настолько низок, что их нужно поддерживать раньше, чем некоторые из тех, которые поддерживались более давно , – arik

+0

ОК. Теперь я понимаю - ваш оригинальный вопрос сказал, что вы «присоединяетесь» к двум полям (подразумеваемая конкатенация). Кажется, вы подразумеваете, что вы добавляете интервал дат к дате и хотите сортировать по недавно рассчитанной дате. В этом случае вашим самым легким поддерживаемым решением является создание нового атрибута под названием «следующее обслуживание» на «серверной» сущности и вычисление его значения во время выполнения через плагин при каждом изменении параметров latest_maintenance или maintenance_interval. –

+0

Хорошо, как бы я это сделал? Мне нужно, чтобы следующее обслуживание было рассчитано автоматически, я знаю, как добавить поле;) – arik

 Смежные вопросы

  • Нет связанных вопросов^_^