Exemplo n.º 1
0
        public EnumerateFactory <TItem> Compile <TItem>(EnumerateResult result)
        {
            List <Expression> body = new List <Expression>();

            if (result.Value == null)
            {
                return(_ => default);
Exemplo n.º 2
0
        public EnumerateResult Parse(IEnumerable <ColumnAttribute> header)
        {
            NodeTree nodeTree = NodeParser.Parse(this.Schema, header);

            Node valueNode = nodeTree.Items.FirstOrDefault(this.IsResultNode);
            Node listNode  = nodeTree.Items.FirstOrDefault(this.IsResultListNode);

            EnumerateResult result = new EnumerateResult(this.Schema);

            result.Value = this.CreateReader(result, listNode ?? valueNode);

            return(result);
        }
Exemplo n.º 3
0
        public static EnumerateFactory <T> GetEnumerateFactory <T>(ISchema schema, IDataRecord header)
        {
            ColumnCacheKey cacheKey = GetCacheKey(schema, QueryType.List, header);

            return((EnumerateFactory <T>)enumerateMap.GetOrAdd(cacheKey, k =>
            {
                EnumerateParser parser = new EnumerateParser(schema);
                EnumerateResult result = parser.Parse(k.Header);

                QueryCompiler compiler = new QueryCompiler();

                return compiler.Compile <T>(result);
            }));
        }