Получить дерево выражений для LINQ IQueryable - PullRequest
0 голосов
/ 06 февраля 2020

Я пытаюсь реализовать собственное выполнение Remote LINQ для EF Core. Итак, как обычно, проблема связана с сериализацией. Давайте представим, что у меня есть IQueryable<T> объект и его Expression, что-то вроде этого:

var sameTestData = new List<int>() { 1, 2, 3 };
var queryableExpresssion = myTestDbContext.Users.Include(e => e.SameTable1)
                                                .Include(f => f.SameTable2)
                                                .Where(s => sameTestData.Contains(s.Id))
                                                .Select(t => t.FullName)
                                                .Expression;

Итак, у меня есть 2 вопроса:

1) Основная проблема заключается в MethodCallExpression проблема идентификации: как проверить все дерево и разделить Expression производные типы на 2 коллекции - с помощью LambdaExpression введите другие типы.

2) Существуют ли библиотеки, которые выполняют синтаксический анализ дерева выражений?

Спасибо.

...