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); }
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); }