В течение нескольких дней код, который всегда работал, терпит неудачу в Azure с исключением «NotSupportedException: указанный метод не поддерживается.». Это исключение возникает при построении строки запроса.
Похоже, он больше не знает, как создать строку запроса для «Содержит»:
У меня есть IQueryable q для построения запроса CosmosDb. Это не удается, если IQueryable имеет условие фильтра «Содержит»:
q = q.Where(r => evt.Contains(r.QEvent));
Не работает
var queryString = query.ToQueryDefinition();
Это выражение обращается к дереву IQueryable и преобразует его в строку запроса (QueryDefinition).
Странно то, что оно всегда работало и до сих пор работает на моей машине разработки, но уже не в Azure. Должно сгенерироваться что-то вроде
WHERE (root["QEvent"] IN ("a", "b"))
Старая версия все еще работает, поэтому она, должно быть, как-то связана со сборкой Azure, но я совершенно не знаю, где искать.
Конечно, я использую один и тот же пакет Microsoft.Azure.Cosmos в обеих средах.
Это первая часть трассировки стека (запрос имеет еще несколько фильтров, поэтому трассировка стека довольно большая):
System.NotSupportedException: Specified method is not supported.
at System.Reflection.RuntimeMethodInfo.ThrowNoInvokeException()
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.Delegate.DynamicInvokeImpl(Object[] args)
at Microsoft.Azure.Cosmos.Linq.SubtreeEvaluator.EvaluateConstant(Expression expression)
at Microsoft.Azure.Cosmos.Linq.SubtreeEvaluator.Visit(Expression expression)
at System.Dynamic.Utils.ExpressionVisitorUtils.VisitArguments(ExpressionVisitor visitor, IArgumentProvider nodes)
at System.Linq.Expressions.ExpressionVisitor.VisitMethodCall(MethodCallExpression node)
at System.Linq.Expressions.MethodCallExpression.Accept(ExpressionVisitor visitor)
at System.Linq.Expressions.ExpressionVisitor.VisitBinary(BinaryExpression node)
at System.Linq.Expressions.BinaryExpression.Accept(ExpressionVisitor visitor)
at System.Linq.Expressions.ExpressionVisitor.VisitBinary(BinaryExpression node)
at System.Linq.Expressions.BinaryExpression.Accept(ExpressionVisitor visitor)
at Microsoft.Azure.Cosmos.Linq.SubtreeEvaluator.Visit(Expression expression)
at System.Linq.Expressions.ExpressionVisitor.VisitLambda[T](Expression`1 node)
at System.Linq.Expressions.Expression`1.Accept(ExpressionVisitor visitor)
at Microsoft.Azure.Cosmos.Linq.SubtreeEvaluator.Visit(Expression expression)
at System.Linq.Expressions.ExpressionVisitor.VisitUnary(UnaryExpression node)
at System.Linq.Expressions.UnaryExpression.Accept(ExpressionVisitor visitor)
at Microsoft.Azure.Cosmos.Linq.SubtreeEvaluator.Visit(Expression expression)
at System.Dynamic.Utils.ExpressionVisitorUtils.VisitArguments(ExpressionVisitor visitor, IArgumentProvider nodes)
at System.Linq.Expressions.ExpressionVisitor.VisitMethodCall(MethodCallExpression node)
at System.Linq.Expressions.MethodCallExpression.Accept(ExpressionVisitor visitor)
at Microsoft.Azure.Cosmos.Linq.SubtreeEvaluator.Visit(Expression expression)
at System.Dynamic.Utils.ExpressionVisitorUtils.VisitArguments(ExpressionVisitor visitor, IArgumentProvider nodes)
at System.Linq.Expressions.ExpressionVisitor.VisitMethodCall(MethodCallExpression node)
at System.Linq.Expressions.MethodCallExpression.Accept(ExpressionVisitor visitor)
at Microsoft.Azure.Cosmos.Linq.SubtreeEvaluator.Visit(Expression expression)
at System.Dynamic.Utils.ExpressionVisitorUtils.VisitArguments(ExpressionVisitor visitor, IArgumentProvider nodes)
at System.Linq.Expressions.ExpressionVisitor.VisitMethodCall(MethodCallExpression node)
at System.Linq.Expressions.MethodCallExpression.Accept(ExpressionVisitor visitor)
at Microsoft.Azure.Cosmos.Linq.SubtreeEvaluator.Visit(Expression expression)
at System.Dynamic.Utils.ExpressionVisitorUtils.VisitArguments(ExpressionVisitor visitor, IArgumentProvider nodes)
at System.Linq.Expressions.ExpressionVisitor.VisitMethodCall(MethodCallExpression node)
at System.Linq.Expressions.MethodCallExpression.Accept(ExpressionVisitor visitor)
at Microsoft.Azure.Cosmos.Linq.SubtreeEvaluator.Visit(Expression expression)
at System.Dynamic.Utils.ExpressionVisitorUtils.VisitArguments(ExpressionVisitor visitor, IArgumentProvider nodes)
at System.Linq.Expressions.ExpressionVisitor.VisitMethodCall(MethodCallExpression node)
at System.Linq.Expressions.MethodCallExpression.Accept(ExpressionVisitor visitor)
at Microsoft.Azure.Cosmos.Linq.SubtreeEvaluator.Visit(Expression expression)
at System.Dynamic.Utils.ExpressionVisitorUtils.VisitArguments(ExpressionVisitor visitor, IArgumentProvider nodes)
at System.Linq.Expressions.ExpressionVisitor.VisitMethodCall(MethodCallExpression node)
at System.Linq.Expressions.MethodCallExpression.Accept(ExpressionVisitor visitor)
at Microsoft.Azure.Cosmos.Linq.SubtreeEvaluator.Visit(Expression expression)
at System.Dynamic.Utils.ExpressionVisitorUtils.VisitArguments(ExpressionVisitor visitor, IArgumentProvider nodes)
at System.Linq.Expressions.ExpressionVisitor.VisitMethodCall(MethodCallExpression node)
at System.Linq.Expressions.MethodCallExpression.Accept(ExpressionVisitor visitor)
at Microsoft.Azure.Cosmos.Linq.ConstantEvaluator.PartialEval(Expression expression, Func`2 fnCanBeEvaluated)
at Microsoft.Azure.Cosmos.Linq.ConstantEvaluator.PartialEval(Expression expression)
at Microsoft.Azure.Cosmos.Linq.SqlTranslator.TranslateQuery(Expression inputExpression, CosmosLinqSerializerOptionsInternal linqSerializerOptions, IDictionary`2 parameters)
at Microsoft.Azure.Cosmos.Linq.DocumentQueryEvaluator.Evaluate(Expression expression, CosmosLinqSerializerOptionsInternal linqSerializerOptions, IDictionary`2 parameters)
at Microsoft.Azure.Cosmos.Linq.CosmosLinqExtensions.ToQueryDefinition[T](IQueryable`1 query)
[...]
Подробнее здесь: https://stackoverflow.com/questions/798 ... -local-mac
CosmosDb ExpressionVisitor (SubtreeEvaluator) не работает в Azure, работает на локальном компьютере ⇐ C#
Место общения программистов C#
1764862458
Anonymous
В течение нескольких дней код, который всегда работал, терпит неудачу в Azure с исключением «[b]NotSupportedException: указанный метод не поддерживается.[/b]». Это исключение возникает при построении строки запроса.
Похоже, он больше не знает, как создать строку запроса для «Содержит»:
У меня есть IQueryable q для построения запроса CosmosDb. Это не удается, если IQueryable имеет условие фильтра «Содержит»:
q = q.Where(r => evt.Contains(r.QEvent));
Не работает
var queryString = query.ToQueryDefinition();
Это выражение обращается к дереву IQueryable и преобразует его в строку запроса (QueryDefinition).
Странно то, что оно всегда работало и до сих пор работает на моей машине разработки, но уже не в Azure. Должно сгенерироваться что-то вроде
WHERE (root["QEvent"] IN ("a", "b"))
Старая версия все еще работает, поэтому она, должно быть, как-то связана со сборкой Azure, но я совершенно не знаю, где искать.
Конечно, я использую один и тот же пакет Microsoft.Azure.Cosmos в обеих средах.
Это первая часть трассировки стека (запрос имеет еще несколько фильтров, поэтому трассировка стека довольно большая):
System.NotSupportedException: Specified method is not supported.
at System.Reflection.RuntimeMethodInfo.ThrowNoInvokeException()
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.Delegate.DynamicInvokeImpl(Object[] args)
at Microsoft.Azure.Cosmos.Linq.SubtreeEvaluator.EvaluateConstant(Expression expression)
at Microsoft.Azure.Cosmos.Linq.SubtreeEvaluator.Visit(Expression expression)
at System.Dynamic.Utils.ExpressionVisitorUtils.VisitArguments(ExpressionVisitor visitor, IArgumentProvider nodes)
at System.Linq.Expressions.ExpressionVisitor.VisitMethodCall(MethodCallExpression node)
at System.Linq.Expressions.MethodCallExpression.Accept(ExpressionVisitor visitor)
at System.Linq.Expressions.ExpressionVisitor.VisitBinary(BinaryExpression node)
at System.Linq.Expressions.BinaryExpression.Accept(ExpressionVisitor visitor)
at System.Linq.Expressions.ExpressionVisitor.VisitBinary(BinaryExpression node)
at System.Linq.Expressions.BinaryExpression.Accept(ExpressionVisitor visitor)
at Microsoft.Azure.Cosmos.Linq.SubtreeEvaluator.Visit(Expression expression)
at System.Linq.Expressions.ExpressionVisitor.VisitLambda[T](Expression`1 node)
at System.Linq.Expressions.Expression`1.Accept(ExpressionVisitor visitor)
at Microsoft.Azure.Cosmos.Linq.SubtreeEvaluator.Visit(Expression expression)
at System.Linq.Expressions.ExpressionVisitor.VisitUnary(UnaryExpression node)
at System.Linq.Expressions.UnaryExpression.Accept(ExpressionVisitor visitor)
at Microsoft.Azure.Cosmos.Linq.SubtreeEvaluator.Visit(Expression expression)
at System.Dynamic.Utils.ExpressionVisitorUtils.VisitArguments(ExpressionVisitor visitor, IArgumentProvider nodes)
at System.Linq.Expressions.ExpressionVisitor.VisitMethodCall(MethodCallExpression node)
at System.Linq.Expressions.MethodCallExpression.Accept(ExpressionVisitor visitor)
at Microsoft.Azure.Cosmos.Linq.SubtreeEvaluator.Visit(Expression expression)
at System.Dynamic.Utils.ExpressionVisitorUtils.VisitArguments(ExpressionVisitor visitor, IArgumentProvider nodes)
at System.Linq.Expressions.ExpressionVisitor.VisitMethodCall(MethodCallExpression node)
at System.Linq.Expressions.MethodCallExpression.Accept(ExpressionVisitor visitor)
at Microsoft.Azure.Cosmos.Linq.SubtreeEvaluator.Visit(Expression expression)
at System.Dynamic.Utils.ExpressionVisitorUtils.VisitArguments(ExpressionVisitor visitor, IArgumentProvider nodes)
at System.Linq.Expressions.ExpressionVisitor.VisitMethodCall(MethodCallExpression node)
at System.Linq.Expressions.MethodCallExpression.Accept(ExpressionVisitor visitor)
at Microsoft.Azure.Cosmos.Linq.SubtreeEvaluator.Visit(Expression expression)
at System.Dynamic.Utils.ExpressionVisitorUtils.VisitArguments(ExpressionVisitor visitor, IArgumentProvider nodes)
at System.Linq.Expressions.ExpressionVisitor.VisitMethodCall(MethodCallExpression node)
at System.Linq.Expressions.MethodCallExpression.Accept(ExpressionVisitor visitor)
at Microsoft.Azure.Cosmos.Linq.SubtreeEvaluator.Visit(Expression expression)
at System.Dynamic.Utils.ExpressionVisitorUtils.VisitArguments(ExpressionVisitor visitor, IArgumentProvider nodes)
at System.Linq.Expressions.ExpressionVisitor.VisitMethodCall(MethodCallExpression node)
at System.Linq.Expressions.MethodCallExpression.Accept(ExpressionVisitor visitor)
at Microsoft.Azure.Cosmos.Linq.SubtreeEvaluator.Visit(Expression expression)
at System.Dynamic.Utils.ExpressionVisitorUtils.VisitArguments(ExpressionVisitor visitor, IArgumentProvider nodes)
at System.Linq.Expressions.ExpressionVisitor.VisitMethodCall(MethodCallExpression node)
at System.Linq.Expressions.MethodCallExpression.Accept(ExpressionVisitor visitor)
at Microsoft.Azure.Cosmos.Linq.SubtreeEvaluator.Visit(Expression expression)
at System.Dynamic.Utils.ExpressionVisitorUtils.VisitArguments(ExpressionVisitor visitor, IArgumentProvider nodes)
at System.Linq.Expressions.ExpressionVisitor.VisitMethodCall(MethodCallExpression node)
at System.Linq.Expressions.MethodCallExpression.Accept(ExpressionVisitor visitor)
at Microsoft.Azure.Cosmos.Linq.ConstantEvaluator.PartialEval(Expression expression, Func`2 fnCanBeEvaluated)
at Microsoft.Azure.Cosmos.Linq.ConstantEvaluator.PartialEval(Expression expression)
at Microsoft.Azure.Cosmos.Linq.SqlTranslator.TranslateQuery(Expression inputExpression, CosmosLinqSerializerOptionsInternal linqSerializerOptions, IDictionary`2 parameters)
at Microsoft.Azure.Cosmos.Linq.DocumentQueryEvaluator.Evaluate(Expression expression, CosmosLinqSerializerOptionsInternal linqSerializerOptions, IDictionary`2 parameters)
at Microsoft.Azure.Cosmos.Linq.CosmosLinqExtensions.ToQueryDefinition[T](IQueryable`1 query)
[...]
Подробнее здесь: [url]https://stackoverflow.com/questions/79837897/cosmosdb-expressionvisitor-subtreeevaluator-fails-on-azure-works-on-local-mac[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия