cosmosdb динамически упорядочивает создание предложений, не работает - PullRequest
0 голосов
/ 30 апреля 2020

Я создаю запрос к базе данных Cosmos динамически. динамическое добавление порядка. Условие состоит в том, что может быть несколько столбцов для сортировки в порядке возрастания или убывания.

Но он генерирует запрос без root в порядке по предложению. Так что это не работает. {{"query": "SELECT VALUE root FROM root WHERE (root [\" Title \ "] = \" Site \ ") ORDER BY \" Address \ "DES C OFFSET 0 LIMIT 20"} }

Вот мой код.

IQueryable queryable = this.container.GetItemLinqQueryable (requestOptions: this.requestOptions) .Where (предикат);

        if (sortingParameters != null && sortingParameters.Count > 0)
        {
            int i = 0;
            foreach (var sortingParam in sortingParameters.Where(x => !string.IsNullOrEmpty(x.ColumnName)))
            {
                Object x = typeof(T);
                var col = typeof(T).GetProperty(sortingParam.ColumnName, BindingFlags.IgnoreCase | BindingFlags.Instance | BindingFlags.Public);
                if (col != null)
                {
                    if (i == 0)
                    {
                        queryable = sortingParam.SortOrder == SortingUtility<T>.SortOrders.ASC ? queryable.OrderBy(x => col.Name)
                                                                                               : queryable.OrderByDescending(x=>col.Name);
                        i++;
                    }
                    else
                    {
                        queryable = sortingParam.SortOrder == SortingUtility<T>.SortOrders.ASC ? ((IOrderedQueryable<T>)queryable).ThenBy(x => col.Name)
                                                                                               : ((IOrderedQueryable<T>)queryable).ThenByDescending(x => col.Name);
                    }
                }
            }
        }
...