2

如何构建 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 进行简单的基于字符串的查询?似乎是一种比默认方式更容易、更易懂的方式。

4

1 回答 1

2

如果您将 SDK 用于服务器端代码,那么您的选择是QueryExpressionFetchXml。两者都不会按照您的要求进行,本机。

请记住,QueryExpression您返回的是类型化对象,而不仅仅是字符串,因此如果要连接两个值,它们需要一个存储容器,即一个属性。

你不能只“排序”第 1 列然后第 2 列吗?IE

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);
于 2012-06-15T13:45:44.837 回答