如何建立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做一个简单的基于字符串的查询?似乎比默认方式更容易理解。

最佳答案

如果将SDK用于服务器端代码,则选择QueryExpressionFetchXml。两者都不会自然地满足您的要求。

请记住,使用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);

10-07 17:06