Linq简单几种写法

我刚开始学习linq不久,所以知道的也不是很多,所以我把我知道的给大家分析一下。给大家看一下我学习的案例,Linq的写法是怎么样的,其实它有固定的写法。据我所知,From开头和select结尾是一定要这样写的,中间可以写的也有挺多的。
Linq简单几种写法
其中where,orderby排序这些语句也可以写。
再来就是上次讲的我所知道的linq单表查询有三种写法:
1、select 自定义的表,一般为单表查询使用
Linq简单几种写法
2、select new 类名{ 一般为多表查询使用
类的属性1=自定义的表名.字段1,
类的属性2=自定义的表名.字段2 }
Linq简单几种写法
3、select new 一般为多表查询使用,单表也可使用
{
自定义的表名.字段1,
自定义的表名.字段2,
自定义的表名.字段3 }
Linq简单几种写法
.Single() 查询单条数据,当查询出来是0条或者是2条及以上的数据时就会触发异常。
.Tolist() 查询多条数据并转换为List。
.Count() 查询多少条数据。

—再来简单看一下联表查询,两个表通过相同的ID进行连接
Linq简单几种写法
—新增,修改,删除的写法
Linq简单几种写法
—接着就是group by
Linq简单几种写法
Group
by是什么意思,在使用中是上面操作。Linq使用group by,按照UserID来分组。
上面那句话是什么意思呢,对一个tbAchievement表按UserID字段进行分组,其结果命名为tbStudent,into在这里是重新命名的意思。一旦重新命名,tbAchievement的作用域就结束了,所以到最后,只能select查询tbStudent。

—左连接left join和右连接right join
Linq简单几种写法
主键ID连外键ID,如果是左连接,就以左边的表为准来进行对右边的查询,如果右边的表没有那条数据,就为null,右连接也是如此。

—再看一下内连接和外连接
Linq简单几种写法
内连接是两张表的共有的数据,也就是交集。外连接是两张表加起来的数据,有的就覆盖,没有的就为null,也就是并集。我们一般使用的是内连接和左连接,比较好理解,另外两个比较复杂。

—然后就是查询中嵌套子查询
Linq简单几种写法
Linq简单几种写法
list是一个对象列表,列表list里面装有一个ModularAndDetailVo,ModularAndDetailVo放有一个列表ModularDetailVo,所以这里表里面嵌套表。理论上来讲,可以无限嵌套,但是事实上一般嵌套两个,最多三个,嵌套多了访问就困难了。这里查出来的只有一个模块表的数据,但是我们也要其他两个表的数据,所以这里要在查询中嵌套查询
Linq简单几种写法
Linq简单几种写法
在这里我们不直接联表查询,而是通过嵌套的方法,在查询中嵌套查询。模块明细数据ModularDetails是由另外两个表来的,所以这里联表查询,然后就查询出相应我需要的数据。然后在这里一个ToList()不可以加分号;,加了会报错,因为这里不是结尾,它和上面的查询模块表的ModularID字段是同级的,只能加逗号,。

如果哪里分析不够恰当或者不清晰的地方请海涵,还可以在评论下面进行点评和指正~