C# CRM SDK Пользовательские столбцы
Как создать выражение CRM SDK QueryExpression, в котором значения двух столбцов объединяются в новый? В MySQL мой запрос будет выглядеть так:
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
?
РЕДАКТИРОВАТЬ: Как бы я сделать простой запрос на основе строки для Microsoft Dynamics CRM? Похоже, способ проще и понятнее, чем по умолчанию.
1 ответ
Если вы используете SDK для серверного кода, то ваш выбор QueryExpression
или же FetchXml
, Ни один не будет делать то, что вы просите, изначально.
Помните, что с QueryExpression
вы возвращаете типизированные объекты, а не просто строки, поэтому, если вы хотите объединить два значения, им нужен контейнер для хранения, то есть атрибут.
Можете ли вы не просто "заказать по" column1, затем column2? Т.е.
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);