LINQ之查询

开发工具与关键技术:Visual Studio 2015   LINQ
作者:孙水兵
撰写时间:2019年3月30

一、 新增前期工作:
在控制器最上端引入Models

实例化Models
在控制器的命名空间中实例化Models
Models.CQUPTEntities 自定义名称 = new Models.CQUPTEntities();

       //实例化Models
       Models.CQUPTEntities myModels = new Models.CQUPTEntities();

二、Linq的一些参数
1、 where:查询的条件
2、 select: 临时变量中被查询的值
3、 orderby:排序, ascending:升序排序(从小到大,默认),descending:降序排序(从大到小),orderby 自定义的表名.字段 ascending(descending)根据自定义的表名中的字段升序(降序)排序
4、 Single();查询单条数据,当没有数据或者有多条数据时会触发异常
5、 ToList();查询多条数据并转为List
6、 Count();查询有多少条数据

三、查询的种类
 单表查询
linq单表查询的写法
(from自定义的表名 in 实例化中自定义名称 . 查询的表
【where 自定义的表名.字段1 关系运算符 值 【&&自定义的表名.字段2 关系运算符 值】】
【orderby 自定义的表名.字段】
【select 自定义的表名】
【select new { 自定义的表名.字段1,
自定义的表名.字段2,
自定义的表名.字段3,
}】
【select new 类名{ 类的属性1=自定义的表名.字段1,
类的属性1=自定义的表名.字段2,
}】

无条件的单表查询
声明一个变量strUserName1,用来接收查询出来的数据,然后再声明一个变量tbStudent用来接收我的模型中的PW_Studeng表的数据,在PW_Studeng表中查询出PW_Studeng表中的所有数据并转为List格式。

//学生表
var strUserName1 = (from tbStudent in myModels.PW_Student
                    select tbStudent).ToList();

有条件的单表查询
先从session中获取PW_Studeng表中的用户ID并用一个变量userId接收,再声明一个变量strUserName,用来接收查询出来的数据,然后再声明一个变量tbStudent用来接收我的模型中的PW_Studeng表的数据,在PW_Studeng表中查询出PW_Studeng表中的用户ID(UserID)等于上面从session中获取的用户ID(userId)的单条数据。
try { } catch { }: 捕获异常,其中Console.Write(e) 可写可不写,主要是为了避免警告

try
      {
           //从session中获取用户id
          var userId = Convert.ToInt32(Session["UserID"].ToString());
           //学生表
           var strUserName1 = (from tbStudent in myModels.PW_Student
                 			   where tbStudent.UserID == userId
                               select tbStudent).Single();
       } 
       catch (Exception e)
       {
            Console.Write(e);
        }

 多表联查

目的:根据用户ID(UserID)查询出用户类型表中的用户类型ID(UserTypeID),用户类型名称(UserType)
涉及到的表格:用户角色明细表(PW_UserRoleDetail),用户类型表(SYS_UserType),用户表(PW_User)
思路:根据上图可以得知:用户角色明细表中存在用户ID(UserID)和用户类型ID(UserTypeID),所以可以根据用户ID连接用户角色明细表,在根据用户角色明细表中的用户类型ID连接用户类型表,然后查出用户类型表中的需要查询的数据。

声明的变量:listUserType、tbUser、 tbUserRoleDetail、 tbUserType
解析:用变量listUserType来接收)在用户类型表中查询出的用户类型ID(UserTypeID),用户类型名称(UserType),将用户表中的数据赋予变量tbUser。加入用户角色明细表并用tbUserRoleDetail来接收其中的数据,,然后根据tbUser中的用户ID查询出用户角色明细表中与tbUser中的用户ID相等的数据。再加入用户类型表并用tbUserType来接收其中的数据,,然后根据tbUserRoleDetail中的用户类型ID查询出用户类型表中与tbUserType中的用户类型ID相等的数据。然后根据用户表中的用户ID等于上表查询出的用户ID,并且用户类型表中的用户类型类等于上面获取到的用户类型类。最后查询出用户类型ID(UserTypeID),用户类型名称(UserType)并转为List格式。

推荐链接:http://www.cnblogs.com/moonache/p/6552843.html#wiz_toc_14

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值