Методы и пример преобразования
Существуют методы, позволяющие производить конвертацию из функции ограничения в выражение для LINQProvider и наоборот.
Получение Linq-выражения из функции ограничения
lf
- функция ограничения.expression
- Linq-выражение.
var limitResolvingViews = new List<View>() { Кредит.Views.C__КредитE };
Expression expression = new LcsInterpretator().Interpret(typeof(Кредит), lf, "x", limitResolvingViews);
Здесь limitResolvingViews
- представления, аналогичные resolvingViews в LINQProvider, необходимые для корректного преобразования Функции ограничения (Limit Function) в Linq-ограничение (в первую очередь особенности связаны с обработкой детейлов). К limitResolvingViews
предъявляются следующие требования:
- При задании ограничения всеобщности на детейлы (ExistExact) в используемое представление детейла должна быть включена ссылка на агрегатора.
- В основное представление агрегатора должны быть включены все детейлы, которые могут встретиться в ограничении.