コード例 #1
0
        public IDbQueryable <T> Between <T, TKey>(IDbQueryable <T> source, Expression <Func <T, TKey> > keySelector, double from, double to, BetweenBoundariesInternal boundaries = BetweenBoundariesInternal.BothInclusive)
        {
            CheckTableInfo <T>();
            if (source.LDBTree == null)
            {
                source.LDBTree = new QueryTree();
            }
            var tree = source.LDBTree;

            if (tree.BetweenInfo == null)
            {
                tree.BetweenInfo = new List <BetweenInfo>();
            }
            var info = new BetweenInfo();

            tree.BetweenInfo.Add(info);
            info.BetweenBoundaries = boundaries;
            info.From = from;
            info.To   = to;

            var par        = keySelector.Parameters.First();
            var name       = SharedUtils.GetPropertyName(keySelector.Body.ToString());
            var table_info = GetTableInfo(typeof(T).Name);

            info.TableNumber  = table_info.TableNumber;
            info.ColumnNumber = table_info.ColumnNumbers[name];
            info.ColumnType   = table_info.Columns[name];
            info.ColumnName   = name;
            info.TableName    = table_info.Name;
            info.IdNumber     = table_info.ColumnNumbers["Id"];


            source.LDBTree.Prev    = info;
            source.LDBTree.Prev.Id = source.LDBTree.Counter + 1;
            source.LDBTree.Counter++;

            return(source);
        }
コード例 #2
0
        public ClientResult Between <T, TKey>(Expression <Func <T, TKey> > keySelector, double from, double to, BetweenBoundariesInternal boundaries = BetweenBoundariesInternal.BothInclusive)
        {
            var res = new ClientResult();

            res.Type       = "between";
            res.Boundaries = (short)boundaries;
            res.From       = from;
            res.To         = to;
            var par  = keySelector.Parameters.First();
            var name = SharedUtils.GetPropertyName(keySelector.Body.ToString());

            res.Selector = name;
            return(res);
        }