Запрос EfCore 3.1 CosmosDb Не может быть переведен - PullRequest
0 голосов
/ 23 февраля 2020

System.InvalidOperationException: 'выражение LINQ' DbSet .GroupBy (source: e => new {ExchangeName = e.ExchangeName, TimeFrame = e.TimeFrame, Symbol = e.Symbol}, keySelector: e => e) ' не может быть переведено. Либо переписать запрос в форме, которую можно перевести, либо явно переключиться на оценку клиента, вставив вызов либо AsEnumerable (), AsAsyncEnumerable (), ToList (), либо ToListAsyn c (). См. https://go.microsoft.com/fwlink/?linkid=2101038 для получения дополнительной информации. '

var query = from stick in context.EmaExchangeEventSpecifications
     group stick by new { stick.ExchangeName, stick.TimeFrame, stick.Symbol } into g
     select new { g.Key.ExchangeName, g.Key.TimeFrame, g.Key.Symbol, Count = g.Count() };
var results = query.ToList();

Что мне нужно изменить, чтобы получить перевод этого запроса? Или, может быть, это не поддерживается в Космосе?

Ответы [ 2 ]

0 голосов
/ 24 февраля 2020

Теперь у нас есть рабочий элемент для включения этой поддержки. Вы можете отслеживать здесь. https://github.com/Azure/azure-cosmos-dotnet-v3/issues/1202

Спасибо.

0 голосов
/ 23 февраля 2020

Способ работы предложений Group By в EF Core 3.x значительно изменился. Многие выражения, которые раньше поддерживались, больше не поддерживаются:

https://docs.microsoft.com/en-us/ef/core/what-is-new/ef-core-3.0/breaking-changes#linq -queries-are-no-Больше-оценивается-на-клиенте

...