Linq语句的查询

开发工具与关键技术:VS C#
作者:梁茵茵
撰写时间:2019年 4月 17日

我们在做新增、修改、删除操作的时候都涉及到查询,而LINQ语句的查询对我们来说并不陌生。LINQ to SQL 全称基于关系数据的NET语言集成查询,用于以对象形式管理关系数据,并提供了丰富的查询功能。
LINQ语句基本语法的关键字如下:
Linq语句的查询
一、查询全部数据
注意:在大多数情况下都可以用var声明的变量来接收查询的数据,但如果使用数据类型来接收查询的数据是有条件的,当你定义了什么数据类型就要赋值什么数据类型,查询全部数据的时候它返回的是本身,既然返回的数据类型一致,那么数据类型的字段就不会改变,具体的数据类型的字段也就匹配。在查询全部数据的时候由于用的都是同一个对象的数据表来查询的也是整一个实体,所以可以有两种写法:
第一种:在不知道什么数据类型的情况下可以用var声明的变量来接收查询的数据:

    var 自定义命名 = (from 自定义表的名称 in Model.数据库的表
                                 select 自定义表的名称).ToList();
//返回一个集合ToList

第二种:在知道是具体的哪一个数据类型的情况下可以用数据类型的方式来接收查询的数据:

List<具体的表> 自定义命名 = (from 自定义表的名称 in Model.数据库的表
                                     select 自定义表的名称).ToList();
         //返回一个集合ToList

二、查询部分数据
第一种:因为在查询部分数据的时候用了一个new来创建一个新的对象,创建出来的对象跟原来的不一样,得到的就是一个新的数据表。由于字段不同,数据类型也就不匹配,所以不可以用原始的表来接收要查询的部分数据。
如果返回的是数据表,就用var声明的变量来查询部分数据:

var 自定义命名 = (from 自定义表的名称 in Model.数据库的表
                                  select new
                               { 
                                  查询具体的字段
                           }).ToList();
                                 //返回一个集合ToList

第二种:如果返回的是数字,就可以用int类型来接收:

int count = (from 自定义表的名称 in Model.数据库的表
                                   select new
                                {
                                   查询具体的字段
                                }).Count();
//总的条数

三、连表查询
要连接的表:表A、表B、表C,其中表B为表A和表C的桥梁,表A要跟表C连接就要通过表B作为中间表从可以连接起来。用var声明结果变量,使用from指定要查询的数据,用where指定过滤条件,最后用select查询。蓝色字体为关键字。

var 自定义命名 = (from 自定义表的名称A in Model.数据库的表A
                       join 自定义表的名称B in Model.数据库的表B 
on 自定义表的名称A.表A主键的ID equals 自定义表的名称B.表B里的表A的ID
                       join 自定义表的名称C in Model. 数据库的表C
                       on 自定义表的名称B.表B里的表C的ID equals 自定义表的名称C.表C里的主键ID
                       where 自定义表的名称B.表B的ID == 自定义表的名称A.表A的ID && 
                       select new
                    {
                       查询具体的字段
                    }).ToList();
                       //返回一个集合ToList

四、排序查询
  在做新增操作的时候为了用户可以方便查询到新增的数据,就对新增的数据做了一个排序的操作。

var 自定义命名 = (from 自定义表的名称 in Model.数据库的表
                                 orderby 自定义表的名称.表的ID descending//倒叙排序
                                 select 自定义表的名称).ToList();

var 自定义命名 = (from 自定义表的名称 in Model.数据库的表
                                 orderby 自定义表的名称.表的ID ascending//顺序排序
                                 select 自定义表的名称).ToList();