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);
Другие вопросы по тегам