最近比较忙,博客更新的比较慢,请大家谅解!
今天来简单介绍一下LINQ to SQL的知识。(用实例)
什么是LINQ to SQL?
LINQ to SQL是基于关系数据的.NET语言集成查询,用于以对象形式管理关系数据,并提供丰富的查询功能。
下面开始介绍LINQ to SQL的用法,在LINQPad下实现。
实例中用到的表:
<1>LINQ to SQL查询所有字段
from p in Courses
select p

<2>LINQ to SQL---列别名
from p in Courses
select new
{
课程号=p.CourseID,
课程名称=p.CourseName
}

<3>LINQ to SQL---where
from p in Courses
where p.CourseID==4
select new
{
课程号=p.CourseID,
课程名称=p.CourseName
}

<4>LINQ to SQL---First() (注:获取记录集中的第一条记录;注意大小写)
(from p in Courses
select new
{
课程号=p.CourseID,
课程名称=p.CourseName
}
).First()

<5>LINQ to SQL---Distinct()
不加Distinct()
(from p in Results
select p.StudentID
)

加Distinct()
(from p in Results
select p.StudentID
).Distinct()

<6>LINQ to SQL---Count()
(from p in Results
where p.StudentID=="20050101"
select p
).Count()

<7>LINQ to SQL---Sum()
(from p in Results
where p.StudentID=="20050101"
select p.Result
).Sum()

<8>LINQ to SQL---Max()
(from p in Results
where p.StudentID=="20050101"
select p.Result
).Max()

<9>LINQ to SQL---Min()
(from p in Results
where p.StudentID=="20050101"
select p.Result
).Min()

<10>LINQ to SQL---Average()
(from p in Results
where p.StudentID=="20050101"
select p.Result
).Average()

<11>LINQ to SQL---orderby
升序
from p in Results
where p.StudentID=="20050101"
orderby p.Result
select p

降序
from p in Results
where p.StudentID=="20050101"
orderby p.Result descending
select p

<12>LINQ to SQL---group by
from p in Results
group p by p.CourseID into g
select g

<13>LINQ to SQL--- 多表连接查询
方法一:
from p in Results
from q in Courses
where p.CourseID==q.CourseID
select new
{
学号=p.StudentID,
课程编号=q.CourseID,
课程名称=q.CourseName,
成绩=p.Result
}

方法二:
from p in Results
join q in Courses on p.CourseID equals q.CourseID
select new
{
学号=p.StudentID,
课程编号=q.CourseID,
课程名称=q.CourseName,
成绩=p.Result
}

<14>LINQ to SQL---多表连接查询中使用 group by
from p1 in Results
join p2 in Courses on p1.CourseID equals p2.CourseID
group p1.Result by new
{
p1.CourseID,
p2.CourseName
}
into g
select new
{
课程编号=g.Key.CourseID,
课程名称=g.Key.CourseName,
最高分=g.Max(),
最低分=g.Min(),
平均分=g.Average()
}

<完>