从年前一直在做一个项目,所有没有时间来看书学习,最近终于有点空闲时间了,就想认真学习下在项目中用到的Linq to SQL。在做项目的过程中觉得Linq很是神奇,语法简单、直观,对于我这个SQL语句不是特别精通的菜鸟来说帮助甚大,所以就抽时间来好好学习学习Linq的精妙。
今天学习的内容是Where的使用,主要是通过例子来展示。
Linq中的Where与SQL命令中的Where很类似,都是起到了过滤的作用,Where后面紧接判定条件子句。
Where操作包括三种形式,分别为简单形式、关系条件形式、First()形式。
一、简单形式
我将简单形式理解为单一条件的Where语句,即在条件子句中只是通过>、<、=、≠作为条件来过滤数据。
例如:使用Where筛选年龄大于20岁的学生
1
2
3
|
var query = from student
in
db.Students
where student.Age > 20
select student;
|
1
|
或者:
|
1
|
var query = db.Students.Where(student=>student.Age > 20);
|
又或者筛选来自北京的学生
1
2
3
|
var query = from student
in
db.Students
where student.City==
"北京"
select student;
|
1
|
或者:
|
1
|
var query = db.Students.Where(student=>student.City==
"北京"
);
|
二、关系条件形式
关系条件形式与简单形式的不同在于,它的条件子句中包含多个条件的并或交,即在简单形式的基础上加上&&、||。
例如:筛选来自北京且年龄大于20岁的学生
1
2
3
|
var query = from student
in
db.Students
where student.Age > 20 && student.City==
"北京"
select student;
|
1
|
或者:
|
1
|
var query = db.Students.Where(student=>student.Age > 20 && student.City==
"北京"
);
|
再如,筛选来自壮族或满族的学生
1
2
3
|
var query = from student
in
db.Students
where student.Nationality ==
"壮族"
|| student.Nationality ==
"满族"
select student;
|
1
|
或者:
|
1
2
|
var query = db.Students.Where(student=>student.Nationality ==
"壮族"
|| student.Nationality ==
"满族"
);
|
大家可以很容易的区分简单形式和关系条件形式的不同。
三、First()形式
First形式与前面两种不同,它类似于在SQL命令中的Top(1)限定,即我们只返回集合中的第一个元素。
例如:选择学生名单中的第一个学生
1
|
Student student = db.Students.First();
|
再如:选择学号为1101021的学生
1
|
Student student = db.Students.First(student=>student.StuNo==
"1101021"
);
|
使用First形式,可以用唯一值来作筛选条件以便确定出唯一需要的数据。
总结:
在使用Linq to SQL的过程中简化了以前使用SQL的繁琐书写,使语句更加的简单直观。通过今天的Where学习,更加熟练了这方面的操作,也让我更加喜欢神奇的Linq了。