linq 查询中嵌套子查询

linq 查询中嵌套子查询

开发工具与关键技术:Visual Studio 2015   ASP .NET MVC
作者:熊俊杰
撰写时间:2019.4.16

接触了ASP .NET MVC的小伙伴都知道,当我们想要知道某些数据的时候,第一件事就是先用linq查询出我们想要的数据。然而linq的查询方法大家都可能清楚,也就是从数据库里面查询出某个数据,这个数据来自哪一张表,这张表里面的主键id和哪一张表的外键相连,然后就是查询是有哪些条件,最后就是查询出想要的数据了。用法就是:
var linq = from…in…
Join…in…on…equals…
Where…
Select new {…}
上面的linq的查询方法就是我们学习ASP .NET MVC最常用的查询数据的方法,但是这只是大多数的查询方法,也有一些数据所需要的查询方法与这种方法不一样。
下面就让我们来了解一种不同的查询方法,这种查询方法就是在linq查询中再创建一个linq的查询方法,也就是linq中嵌套子查询。如下图:
在这里插入图片描述
在用linq嵌套子查询的时候,我们所创建的实体类也要注意一下,在我们ModularAndDetailVo这个实体类里面需要用到另外一个实体类ModularDetailVo里面的某个值,如下图:
在这里插入图片描述
因为在查询时我们要同时查询两张表里面的数据,而且还有其他表里面某些数据,所以我们用一个实体类ModularDetailVo继承一张表里面的数据,然后再用ModularAndDetailVo继承一张表里面的数据,同时还需要ModularDetailVo里面的某个数据。实体类建好了以后就可以用linq来查询数据了,
首先从myModel.SYS_Modular里面查询数据,查询时selecr new ModularAndDetailVo 把查询的数据放在一个新的实体类里面,当查询结果时ModularDetails需要用到另外一个实体类里面的数据,所以这个时候就要用到子查询的方法了。把ModularDetails看做成一个linq查询,从myModel.SYS_ModularDetail里面查询数据,查询的结果放在一个新的实例中select new ModularDetailVo,最后查询出结果来,同样根据selecr new ModularDetailVo把查询的数据放在一个新的实体类里面,最后在ModularDetails里面可以查询出多个数据来。
这种查询就好比时多维数组,多维数组就是一个数组里面包含了多个数据,然而数据有可能又是另一个数组所组成,而另一个数组里面的数据又有可能是由数组所组成,从而形成了多维数组。Linq嵌套子查询也是如此,在子查询里面又可以嵌套子查询,按理来说可以无限嵌套下去,前提是你的思维可以运转过来。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值