查询结构
(from 自定义的表名 in Model对象.查询的表
where 自定义的表名.字段1 关系运算符 值 [&& 自定义的表名.字段2 关系运算符 值]
orderby 自定义的表名.字段
1 select 自定义的表名
2.1 select new 类名{ 类的属性1=自定义的表名.字段1,
类的属性2=自定义的表名.字段2,
…
}
2.2 select new {自定义的表名.字段1,
自定义的表名.字段2,
自定义的表名.字段3,
…
}
).Single();//查询单条数据,当没有数据或者有多条数据时会触发异常
.ToList();//查询多条数据并转为List
.Count();//查询有多少条数据(总条数)
linq 查询的写法
PW_User dbUser = (from tbUser in myModel.PW_User
where tbUser.UserNuber == strUserNuber && tbUser.ToVoidNo == true
select tbUser).Single();
(把PW_User换成var)可以用var来接收数据类型,这里的var是匿名数据类型,c#的数据类型都可以放在里面,在编译时c#会把它翻译成应有的数据类型,不过只允许在linq时使用,在平时不使用,虽然用var接收数据没有错,但是不利于代码的阅读 查看,所以除linq外,该是是什么数据类型的就写什么数据类型。
单表查询可以直接用要查询的表对象作为类型来接收数据,因为要查询myModel.PW_User所以可以用PW_User类型来接收,实际对象是tbUser,dbUser是自定义来接收数据的
form是从tbUser查询,tbUser是自定义的表名,tbUser的数据是来自于myModel里面的PW_User
where查询的条件是tbUser的用户账号(UserNuber)等于用户账号(strUserNuber),同时满足&&后面的tbUser的账号是否有效(ToVoidNo),有效为true
select查询tbUser,Single查询一条数据
使用Single用 try{
}
catch (Exception e){
}
捕获异常,e是异常参数
查询结构2.1
//适合多表,单表都可以
PW_User dbUser = (from tbUser in myModel.PW_User
where tbUser.UserNuber == strUserNuber && tbUser.ToVoidNo == true
select new PW_User{
UserID = tbUser.UserID,
UserNuber = tbUser.UserNuber,
Password = tbUser.Password
}).Single();
new PW_User一个类,里面包含了上面PW_User的全部数据,在下面可以一个一个的赋值
PW_User里面的UserID(属性1)赋值为(=)tbUser(自定义的表名)的字段UserID(字段1)
查询结构2.2
//适合多表,只需要查询数据,不需要具体对象
var dbUser = (from tbUser in myModel.PW_User
where tbUser.UserNuber == strUserNuber && tbUser.ToVoidNo == true
select new{
tbUser.UserID,
tbUser.UserNuber,
tbUser.Password
}).Single();
直接new出了一个匿名对象,new{}里面写了什么dbUser里面就是什么