LINQ查询:八大基本字句:
select子句:指定查询结果的类型和表现形式
where子句:筛选元素的逻辑条件,一般由逻辑运算符组成
group … by子句:对查询进行分组
orderby子句:对查询结果进行排序,可以为“升序”或“降序”
join子句:连接多个查询操作的数据源
let子句:引入用于存储查询表达式中的子表达式结果的范围变量
into子句:提供一个临时标示符,充当对join、group或select子句的结果
LINQ to SQL查询以LINQ查询的八大基本字句为基础
简单查询:
//创建LinqDB上下文实例
DatalinqDataContext db = new DatalinqDataContext();
//Linqtosql查询结果
var res = from i in db.StuInfo where i.stuid < 5 select i;
//指定数据源
GridView1.DataSource = res;
//绑定数据源
GridView1.DataBind();
复杂查询:
//创建LinqDB上下文实例
DatalinqDataContext db = new DatalinqDataContext();
//Linqtosql查询结果
var res = from i in db.UserInfo
join j in db.UserRole on i.ID equals j.UserID
join l in db.Role on j.RoleID equals l.ID
where i.ID < 5 && i.Username.Length >= 5
orderby i.Username descending
select new { i.ID,i.Username,i.RoleName};
//指定数据源
GridView1.DataSource = res;
//绑定数据源
GridView1.DataBind();
聚合查询:
//创建LinqDB上下文实例
DatalinqDataContext db = new DatalinqDataContext();
//Linqtosql查询结果
var res = from i in db.Product
where i.Price==db.Product.Max<Product>(p=>p.Price)
|| i.Price == db.Product.Min<Product>(o => o.Price)
select new { i.ID, i.Name, i.Price,i.Remark };
//指定数据源
GridView1.DataSource = res;
//绑定数据源
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);
}