Я создаю запрос к базе данных 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);
}
}
}
}