Я пытаюсь реализовать собственное выполнение 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) Существуют ли библиотеки, которые выполняют синтаксический анализ дерева выражений?
Спасибо.