LinQ高級查詢


一、模糊查詢數據庫

con.Users.Where(a =>a.UserName.Contains(name)).ToList(); //包含name
con.Users.Where(a =>a.UserName.StartsWith(name)).ToList(); //以name開頭
con.Users.Where(a =>a.UserName.EndsWith(name)).ToList(); //以name結尾

二、最大值、最小值、平均值、總和返回值是問號型(能夠爲空)spa

con.Users.ToList().Count();  //查出集合的個數
con.Users.Max(r => r.price); //查最大值
con.Users.Min(r => r.price); //查最小值
con.Users.Average(r => r.price);//查平均值
con.Users.Sum(r => r.price); //查總和
con.Users.OrderBy(r => r.price).ToList();//升序排序
con.Users.OrderByDescending(r => r.price).ToList();//降序排序

三、分頁code

Skip()跳過的個數;Take() 獲取幾條數據blog

//參數1:每頁的個數;參數2:第幾頁
public List<Users> selectfen(int pagecount,int page) { return con.Users.Skip(pagecount * (page - 1)).Take(pagecount).ToList(); }

四、組合查詢:
(1)集合的交集All.Intersect(oillist);排序

(2)AsEnumerable()代替ToList(),能夠節省內存ip

AsEnumerable() 和 .ToList() 的區別:內存

  • .AsEnumerable()延遲執行,不會當即執行。當你調用.AsEnumerable()的時候,實際上什麼都沒有發生。
  • .ToList()當即執行
  • 當你須要操做結果的時候,用.ToList(),不然,若是僅僅是用來查詢不須要進一步使用結果集,並能夠延遲執行,就用.AsEnumerable()/IEnumerable /IQueryable
  • .AsEnumerable()雖然延遲執行,但仍是訪問數據庫,而.ToList()直接取得結果放在內存中。

(3)using指令調用了一個方法——Dispose()方法。而Dispose()方法的做用就是釋放全部的使用資源。資源

using (LinQlianxiDataContext con = new LinQlianxiDataContext())
        {
            var all = con.Users.AsEnumerable();
            if (TextBox1.Text.Trim().Length > 0)
            {
                var allname = con.Users.Where(a => a.UserName.Contains(TextBox1.Text.Trim())).AsEnumerable();
                all = all.Intersect(allname).AsEnumerable();
            }
            if (DropDownList1.SelectedValue != "0")
            {
                var allsex = con.Users.Where(a => a.Sex == Convert.ToBoolean(DropDownList1.SelectedValue)).AsEnumerable();
                all = all.Intersect(allsex).AsEnumerable();
            }  

          Repeater1.DataSource = all;
          Repeater1.DataBind();it

        }class

相關文章
相關標籤/搜索