示例#1
0
        /**************************************************************************************************************/

        /// <summary>
        /// 请参阅: <see langword=".Where() &amp; .And() &amp; .Or() 使用 https://www.cnblogs.com/Meng-NET/"/>
        /// </summary>
        public static WhereQ <M> Where <M>(this Queryer <M> selecter, Expression <Func <M, bool> > compareFunc)
            where M : class
        {
            selecter.DC.Action = ActionEnum.Where;
            selecter.ST_WhereAndOr(compareFunc);
            return(new WhereQ <M>(selecter.DC));
        }
示例#2
0
 public static OrderByQ <M> OrderBy <M>(this Queryer <M> queryer, IEnumerable <string> orderBys)
     where M : class, new()
 {
     queryer.DC.Action = ActionEnum.OrderBy;
     queryer.OrderByM <M>(orderBys);
     return(new OrderByQ <M>(queryer.DC));
 }
示例#3
0
 /// <summary>
 /// 请参阅: <see langword=".Where() &amp; .And() &amp; .Or() 使用 " cref="https://www.cnblogs.com/Meng-NET/"/>
 /// </summary>
 public static WhereQ <M> Where <M>(this Queryer <M> selecter, object mWhere)
     where M : class
 {
     selecter.DC.Action = ActionEnum.Where;
     selecter.WhereDynamicHandle <M>(mWhere);
     return(new WhereQ <M>(selecter.DC));
 }
示例#4
0
        public static FromX From <M>(this Queryer join, Expression <Func <M> > tableModelFunc)
        {
            join.DC.Action = ActionEnum.From;
            var dic = join.DC.EH.FuncTExpression(tableModelFunc);

            join.DC.DPH.AddParameter(dic);
            return(new FromX(join.DC));
        }
示例#5
0
 void dataPager_Click(object sender, RoutedEventArgs e)
 {
     PageExpression pager = Queryer.QueryExpression.Pager;
     int minRow = pager.PreRowCount / pager.PageSize -1;
     int subPageCount = this.dataPager.PageIndex - pager.PageIndex;
     if (subPageCount <= minRow && subPageCount >= 0)
     {
         // this.ItemsSource
         var data = this.ItemsSource.Skip(subPageCount * pager.PageSize).Take(pager.PageSize);
         this.ADtGrid.ItemsSource = data;
     }
     else
     {
         this.Pager.PageIndex = this.dataPager.PageIndex;
         Queryer.Query();
     }
 }
示例#6
0
 public static DistinctQ <M> Distinct <M>(this Queryer <M> selecter)
     where M : class
 {
     selecter.DistinctHandle();
     return(new DistinctQ <M>(selecter.DC));
 }
        public void TestSpecialHandler()
        {
            var objects = new List <Dummy> {
                new Dummy()
                {
                    Name = "Lol", Age = 15
                },
                new Dummy()
                {
                    Name = "Lolz", Age = 18
                },
                new Dummy()
                {
                    Name = "AOL", Age = 20
                },
                new Dummy()
                {
                    Name = "lawMaS", Age = 22
                },
                new Dummy()
                {
                    Name = "LAERO", Age = 15
                }
            };

            var queryer = new Queryer <Dummy>();

            queryer.SetSpecialHandler("Name:", (list, token) => {
                return(list.Where(item => item.Name.StartsWith(token, StringComparison.OrdinalIgnoreCase)));
            });

            // Null query
            var results = queryer.Query(objects, null).ToList();

            Assert.AreEqual(objects.Count, results.Count);
            for (int i = 0; i < objects.Count; i++)
            {
                Assert.IsTrue(objects.Contains(results[i]));
            }
            // Empty query
            results = queryer.Query(objects, "").ToList();
            Assert.AreEqual(objects.Count, results.Count);
            for (int i = 0; i < objects.Count; i++)
            {
                Assert.IsTrue(objects.Contains(results[i]));
            }
            // Space query
            results = queryer.Query(objects, "      ").ToList();
            Assert.AreEqual(objects.Count, results.Count);
            for (int i = 0; i < objects.Count; i++)
            {
                Assert.IsTrue(objects.Contains(results[i]));
            }


            results = queryer.Query(objects, "name: l").ToList();
            Assert.AreEqual(4, results.Count);
            for (int i = 0; i < 4; i++)
            {
                Assert.IsTrue(objects.Contains(results[i]));
                Debug.Log(results[i].ToString());
            }

            results = queryer.Query(objects, "name:lo").ToList();
            Assert.AreEqual(2, results.Count);
            for (int i = 0; i < 2; i++)
            {
                Assert.IsTrue(objects.Contains(results[i]));
                Debug.Log(results[i].ToString());
            }

            results = queryer.Query(objects, "aol").ToList();
            Assert.AreEqual(1, results.Count);
            for (int i = 0; i < 1; i++)
            {
                Assert.IsTrue(objects.Contains(results[i]));
                Debug.Log(results[i].ToString());
            }
        }
        public void TestQuery()
        {
            var objects = new List <Dummy> {
                new Dummy()
                {
                    Name = "Lol", Age = 15
                },
                new Dummy()
                {
                    Name = "Lolz", Age = 18
                },
                new Dummy()
                {
                    Name = "AOL", Age = 20
                },
                new Dummy()
                {
                    Name = "lawMaS", Age = 22
                },
                new Dummy()
                {
                    Name = "LAERO", Age = 15
                }
            };

            var queryer = new Queryer <Dummy>();

            // Null query
            var results = queryer.Query(objects, null).ToList();

            Assert.AreEqual(objects.Count, results.Count);
            for (int i = 0; i < objects.Count; i++)
            {
                Assert.IsTrue(objects.Contains(results[i]));
            }
            // Empty query
            results = queryer.Query(objects, "").ToList();
            Assert.AreEqual(objects.Count, results.Count);
            for (int i = 0; i < objects.Count; i++)
            {
                Assert.IsTrue(objects.Contains(results[i]));
            }
            // Space query
            results = queryer.Query(objects, "      ").ToList();
            Assert.AreEqual(objects.Count, results.Count);
            for (int i = 0; i < objects.Count; i++)
            {
                Assert.IsTrue(objects.Contains(results[i]));
            }

            results = queryer.Query(objects, "ol").ToList();
            Assert.AreEqual(3, results.Count);
            for (int i = 0; i < 3; i++)
            {
                Assert.IsTrue(objects.Contains(results[i]));
                Debug.Log(results[i].ToString());
            }

            results = queryer.Query(objects, "15").ToList();
            Assert.AreEqual(2, results.Count);
            for (int i = 0; i < 2; i++)
            {
                Assert.IsTrue(objects.Contains(results[i]));
                Debug.Log(results[i].ToString());
            }
        }
示例#9
0
 public static OrderByQ <M> OrderBy <M, F>(this Queryer <M> target, Expression <Func <M, F> > propertyFunc, OrderByEnum orderBy = OrderByEnum.Desc)
     where M : class
 {
     return(OrderByQ(target, propertyFunc, orderBy));
 }