LINQ查询:八大基本字句:
from … in子句:指定查询操作的数据源和范围变量
select子句:指定查询结果的类型和表现形式
where子句:筛选元素的逻辑条件,一般由逻辑运算符组成
group … by子句:对查询进行分组
orderby子句:对查询结果进行排序,可以为“升序”或“降序”
join子句:连接多个查询操作的数据源
let子句:引入用于存储查询表达式中的子表达式结果的范围变量
into子句:提供一个临时标示符,充当对join、group或select子句的结果
LINQ to SQL查询以LINQ查询的八大基本字句为基础
简单查询
//创建linqdb上下文事例 LinqDBDataContext DB = new LinqDBDataContext(); //创建linqdb上下文事例 var query = from user in DB.UserInfo where user.ID < 5 select user; //指定数据源 GridView1.DataSource = query; //绑定数据源 GridView1.DataBind();
聚合查询
//创建linqdb上下文事例 LinqDBDataContext DB = new LinqDBDataContext(); var query = from product in DB.Product where product.Price == DB.Product.Max(p => p.Price) select product; GridView1.DataSource = query; GridView1.DataBind();
复杂查询
//创建linqdb上下文事例 LinqDBDataContext DB = new LinqDBDataContext(); //创建linqdb上下文事例 var query = from user in DB.UserInfo join role in DB.UserRole on user.ID equals role.UserID where user.ID < 5 && user.Username.Length >= 3 select new { ID = user.ID, Name = user.Username, Role = role.Role.RoleName }; //指定数据源 GridView1.DataSource = query; //指定数据源 GridView1.DataBind();
分组查询
//创建linqdb上下文事例 LinqDBDataContext DB = new LinqDBDataContext(); //linq分组 var query = from res in (from user in DB.UserInfo join order in DB.Order on user.ID equals order.UserId select new { ID = user.ID, Name = user.Username } ) group res by res.ID; foreach (var item in query) { //创建Gv GridView gridView = new GridView(); gridView.DataSource = item; gridView.DataBind(); //添加html元素 Page.Form.Controls.Add(gridView); }