Azure Cosmos with. NET SDK 3.6 throws Group By не поддерживается в запросе LINQ - PullRequest
0 голосов
/ 06 февраля 2020

Согласно документации поддерживается группа , начиная с. NET SDK 3.3. Я написал тестовый код в LINQPad для запроса моего локального Azure Cosmos Emulator с помощью LINQ, но он выдает следующее сообщение об ошибке:

Method 'GroupBy' is not supported., Windows/10.0.18362 cosmos-netstandard-sdk/3.4.2

Я использую пакет NuGet Microsoft.Azure.Cosmos версия 3.6.0.

Мой запрос выглядит так:

var query = container.GetItemLinqQueryable<MyObject>()
    .GroupBy(a => a.Id)
    .ToFeedIterator();

( Обратите внимание, я понимаю, что запрос бессмысленный, это просто пример)

Выполнение аналогичного SQL в веб-интерфейсе работает просто отлично:

SELECT
    o.id
FROM
    MyObjects o
GROUP BY
    o.id

Если я выполню SQL через C# SDK, который также, кажется, работает нормально:

var queryDef = new QueryDefinition("SELECT i.id FROM items i GROUP BY i.id");
var query = container.GetItemQueryIterator<ToDoItem>(queryDef);
var items = new List<ToDoItem>();

while (query.HasMoreResults)
{
    items.AddRange(await query.ReadNextAsync());
}

items.Dump();

1 Ответ

1 голос
/ 07 февраля 2020

В связанном документе описана поддержка GROUP BY на SQL обработчике запросов, поэтому выполнение запроса с GROUP BY на портале или в SDK как текст работает.

Поддержка LINQ является отдельной и в настоящее время не существует для GroupBy (он не переводится в текст SQL Query).

Я добавил Проблема на GitHub , которая будет использоваться для отслеживания прогресса на нем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...