Пример #1
0
 public override ISqlExpression[] GetExpressions <T>(ExpressionParser <T> parser)
 {
     return(new [] { Field });
 }
Пример #2
0
        Query <T> GetInfo(IDataContext dataContext)
        {
            var dataContextInfo = DataContextInfo.Create(dataContext);

            string        lastContextID;
            MappingSchema lastMappingSchema;
            Query <T>     query;

            lock (_sync)
            {
                lastContextID     = _lastContextID;
                lastMappingSchema = _lastMappingSchema;
                query             = _lastQuery;
            }

            var contextID     = dataContextInfo.ContextID;
            var mappingSchema = dataContextInfo.MappingSchema;

            if (lastContextID != contextID || lastMappingSchema != mappingSchema)
            {
                query = null;
            }

            if (query == null)
            {
                var key = new { contextID, mappingSchema };

                lock (_sync)
                    _infos.TryGetValue(key, out query);

                if (query == null)
                {
                    lock (_sync)
                    {
                        _infos.TryGetValue(key, out query);

                        if (query == null)
                        {
#if NEW_PARSER
                            query = new ExpressionParser(new Query <T>(), dataContextInfo, _expression, _lambda.Parameters.ToArray())
                                    .Parse <T>();
#else
                            query = new ExpressionParserOld <T>().Parse(
                                contextID,
                                mappingSchema,
                                dataContextInfo.CreateSqlProvider,
                                _expression,
                                _lambda.Parameters.ToArray());
#endif

                            _infos.Add(key, query);

                            _lastContextID     = contextID;
                            _lastMappingSchema = mappingSchema;
                            _lastQuery         = query;
                        }
                    }
                }
            }

            return(query);
        }
Пример #3
0
 public abstract ISqlExpression[]      GetExpressions <T>(ExpressionParser <T> parser);
Пример #4
0
 public abstract FieldIndex[]          Select <T>(ExpressionParser <T> parser);
Пример #5
0
 public override ISqlExpression[] GetExpressions <T>(ExpressionParser <T> parser)
 {
     return(GroupBySource.BaseQuery.GetExpressions(parser));
 }
Пример #6
0
            public override ISqlExpression[] GetExpressions <T>(ExpressionParser <T> parser)
            {
                var expr = base.GetExpressions(parser);

                return(expr.Length == 1 ? expr : new ISqlExpression[] { SubSql });
            }
Пример #7
0
 public override ISqlExpression[] GetExpressions <T>(ExpressionParser <T> parser)
 {
     return(new ISqlExpression[] { SqlTable });
 }