LINQ學習筆記


1.按條件查詢

     using (var context = new Db())
            {
                var list = context.SW_PRODUCTS.Where(t => t.SERIESID.Value == sid && t.ISONSALE.Value == 1 && t.SDELL.Value == 0)
                    .OrderByDescending(t => t.ORDERS)
                    .ToList();

}

2.單個查詢

 var pro = context.SW_PRODUCTS.FirstOrDefault(c=>c.ID==id);


3.模糊查詢

contains相當於like

 var list = context.SW_PRODUCTS.Where(t => t.PRODUCTSNAME.Contains(~~~))
                    .OrderByDescending(t => t.ORDERS)
                    .ToList();


4.分頁

  var list3 = context.SW_PRODUCTS.Where(t => t.PRODUCTSNAME.Contains("S3N-160/R50 TM 10ITH"))
                .OrderByDescending(t => t.ORDERS).Skip(5).Take(5)
            .ToList();

skip跳過5條 take再取5條


5. 自己構建查詢條件

需要引入system.linq.exepression然後就可以自居寫查詢條件

                int tid = GetTid(tn);
                int bid = GetBid(bn);
                int sid = GetSid(sn);
                IList<SW_PRODUCTS> list = new List<SW_PRODUCTS>();
                Expression<Func<SW_PRODUCTS, bool>> where = f => true;
                Expression<Func<SW_PRODUCTS, bool>> where2 = f => true;
                Expression<Func<SW_PRODUCTS, bool>> where3 = f => true;
        
                if (!Tool.IsNullOrEmpty(tn))
                {
                    where = t => t.TYPEID.Value == tid && t.ISONSALE.Value == 1 && t.SDELL.Value == 0;
                }
                if (!Tool.IsNullOrEmpty(bn))
                {
                    where2 = t => t.BRANDID.Value==bid&& t.ISONSALE.Value == 1 && t.SDELL.Value == 0;
                }
                if (!Tool.IsNullOrEmpty(sn))
                {
                    where2 = t => t.SERIESID.Value ==sid&& t.ISONSALE.Value == 1 && t.SDELL.Value == 0;
                }
                list = context.SW_PRODUCTS.Where(where).Where(where2).Where(where3).OrderByDescending(t => t.ORDERS).Skip(page * count).Take(count).ToList();
               


6.用LINQ篩選不重複數據

      public List<string> Test(int id)
        {
            List<string> li = new List<string>();
            List<Product> ps = ProListByTypeIdAll(id);
            li = ps.Select(t => t.BrandName).Distinct().ToList();
            return li;
        }
Distinct()


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章