Описание тега expressionvisitor

5 ответов

Можем ли мы удалить предложения из выражения linq?

Мне было интересно, возможно ли добавить / удалить предложение where из операторов выражения / запроса linq. Например:- var qry = from e in emp where(e => e.salary > 5000) select e; Можно ли убрать где выражение на более поздней стадии? Заране…
1 ответ

Как удалить выражение OrderBy из ExpressionTree с помощью ExpressionVisitor?

Статус Orderby не поддерживается поставщиком linq хранилища таблиц Azure. У меня есть выражение вроде .Where(t => (t.RowKey.CompareTo("U_") > 0)).OrderBy(user => user.UserName) я пытаюсь удалить .OrderBy(user => user.UserName) из дерева …
2 ответа

ExpressionVisitor не имеет своего вызова VisitMethodCall

Я следую серии примеров на MSDN по созданию поставщика LINQ и ударил стену. Я ожидаю, что когда я напишу следующий тест, ExpressionVisitor подкласс в исходном коде ниже имеет VisitMethodCall вызывается. [Fact] public void DatabaseModeler_provides_ta…
15 фев '16 в 17:24
0 ответов

Linq Expression управляет приоритетом между AndAlso и OrElse

У меня есть динамическая система фильтрации на моем уровне данных, чтобы создать выражение для получения данных. У меня есть объект запроса, который содержит мою модель фильтрации, а именно: public class BookingPagerQuery : PagerQuery { public bool?…
05 дек '18 в 11:19
0 ответов

Как изменить тип дерева выражений и правильно обновить вложенные выборки в нем?

Я использую Entity Framework 6.3 и Visual Studio 2017. Допустим, у меня есть следующие классы. class Store { //Some other fields List<Toy> Toys = new List<Toy>(); List<Item> SoldItems = new List<Item>(); } class Toy { //Some …
1 ответ

Проблема с обобщениями при попытке перенести реализацию языка LOX из книги переводчика крафта на C#

Недавно я обнаружил языковую ошибку, и как часть моего учебного процесса я начал пробираться по книге Боба Нистрома "Переводчики крафта" и пытался воссоздать интерпретатор языка JLOX в C#. "J" в JLOX относится к образцу кода в Книге, реализуемому на…
21 июл '17 в 01:56
2 ответа

Разбор условных выражений в строку

Я ищу способ парсинга условного выражения в строку. Лучший пример, который я могу придумать, это LINQ-to-SQL. Он использует ExpressionVisitors для форматирования предложений "Где". Пример: from a in b where a.x == 5 && a.y < 3 select a Эт…
17 ноя '10 в 01:57
1 ответ

Найти и удалить объявление параметра внутри Expression.Block

Я знаю, как заменить параметр ExpressionVisitor, но мне было интересно, есть ли способ удалить параметр из Expression.Block. В идеале я должен сканировать все дерево выражений и удалять параметр каждый раз, когда он объявляется внутри блока. Любая и…
29 мар '17 в 09:51
1 ответ

Как переписать выражение x=>! X в x=>x!= True и x => x в x=>x==true

Предположим, что мы выражаемся так: someIQueryable.Where(x => x.SomeBoolProperty) someIQueryable.Where(x => !x.SomeBoolProperty) Мне нужно преобразовать (переписать с помощью выражения посетитель) выражения, как указано выше, в выражения, подо…
27 янв '14 в 13:30
1 ответ

Как бы вы проверили модульный тест ExpressionVisitor?

Я работаю в корпоративной среде, и наши внешние клиенты (клиент и сеть) не имеют прямого доступа к БД, а просто общаются со службами по сети. Начата проверка концепции для доступного извне веб-API ASP.Net, и мы думали о том, чтобы попытаться использ…
10 сен '12 в 21:34
1 ответ

Как построить LambdaExpression из существующего LambdaExpression без компиляции

Я хочу объединить два лямбда-выражения без их компиляции. Вот как это выглядит, если я их скомпилирую: public Expression<Func<TContainer,bool>> CreatePredicate<TContainer,TMember>( Expression<Func<TContainer,TMember>> g…
1 ответ

ExpressionVisitor.Visit выбрасывает ошибку "должен быть приводимым узлом" в Visitor Query Service Data

У меня проблема с реализацией шаблона репозитория для моей службы данных WCF. Подводя итог, я пытаюсь использовать шаблон репозитория в клиентском приложении, которое использует подключаемую модель для требуемых репозиториев. Основная проблема заклю…
2 ответа

OData: проводить сравнение без учета регистра, используя ExpressionVisitor

Например, у меня есть запрос OData, такой как они: / Поставщики?$ Filter= Address / City eq 'city' / Поставщики?$ Filter= содержит (Адрес / Город, 'Город') / Поставщики?$ Фильтр = заканчивается с (Адрес / Город, 'город') ... и Адрес / Город имеет то…
24 мар '16 в 20:13
2 ответа

Сравнение строк без учета регистра в выражении LINQ

Я пытаюсь написать ExpressionVisitor, чтобы обернуть вокруг моих выражений LINQ-to-object, чтобы автоматически сделать их сравнения строк нечувствительными к регистру, как это было бы в LINQ-to-entity. РЕДАКТИРОВАТЬ: Я ОБЯЗАТЕЛЬНО хочу использовать …
1 ответ

Если участвует в Queryable C# присоединиться

Ищете способы найти участие в запрашиваемых объединениях... По сути, я хочу проверить, используется ли класс модели X в операциях соединения в операторах Queryable. Используя QueryInterceptor Дэвида Фаула, я могу поместить посетителя выражения в IQu…
06 ноя '14 в 17:30
2 ответа

Получение ConstantExpression.Value, когда фактическое значение обернуто в DisplayClass из-за закрытия

Ниже приведен простой демонстрационный код моей проблемы. [TestClass] public class ExpressionTests { [TestMethod] public void TestParam() { Search<Student>(s => s.Id == 1L); GetStudent(1L); } private void GetStudent(long id) { Search<Stu…
0 ответов

C# ExpressionVisitor.VisitBinary

От: Как: изменить деревья выражений (C# и Visual Basic) http://msdn.microsoft.com/en-us/library/bb546136.aspx protected override Expression VisitBinary(BinaryExpression b) { if (b.NodeType == ExpressionType.AndAlso) { Expression left = this.Visit(b.…
05 янв '13 в 10:13
3 ответа

Заменить тип параметра в лямбда-выражении

Я пытаюсь заменить тип параметра в лямбда-выражении от одного типа к другому. Я нашел другие ответы на stackru, т.е. этот, но мне не повезло с ними. Представьте на секунду, что у вас есть объект домена и хранилище, из которого вы можете получить объ…
11 июл '16 в 21:28
0 ответов

Entity Framework Core PostgreSQL Linq to SQL Json Field

Извините за мой плохой английский Примечание: Npgsql не поддерживает JSON-запрос напрямую с EF Core Mapping. Как вы знаете, PostgreSQL поддерживает JSON и гибридные данные. И если вы хотите сделать запрос, вы можете использовать такой синтаксис sele…
1 ответ

Остановить обход с ExpressionVisitor

Я использую ExpressionVisitor проанализировать дерево выражений, чтобы выяснить, содержит ли оно указанный параметр. Как только я нашел параметр, нет смысла продолжать обход. Есть ли способ остановить обход с помощью шаблона посетителя в целом и, бо…