我们一开始接触ASP.NET.MVC的时候,linq查询是最普遍的。当我们知道某些数据的时候,我们直接考虑的就是linq查询语句,然而它的语句代码如下:

var q=from p in Models.表名

    join a in Modes.表名 on p.某个字段 equals a. 某个字段

    select p;

下面我讲一下我在项目中遇到的问题是,我们在查询数据时,需要查询出它的上级聚类包,那么这个时候我们必先考虑用linq查询来做,这样我用linq查询并不能查询出我想要的数据,所以我在linq查询中嵌套子查询。我的数据库里面有一个上级ID,所以我根据它的上级ID来进行判断它是否拥有上级聚类包,它的上级为0的时候,那么我们就知道它则是最大的,没有上级关系的,下面我们来进行表格的初始化,如下图:

Linq的子查询

为了实现把我的上级聚类包查询出来,我们在控制器里用linq查询语句中进行嵌套,这样就能把我们的上级聚类包查询出来了。我的思路就是需要让它的上级ID等于我这张表的主键ID,这样我们才能拿到相对应的上、下级聚类包数据,然后我再查询出我上级ID对应的主键ID中的数据,这样我们就能查询出来了,那么首先我们需要创建一个实体类ClusterPackVo来接收我需要连接表里面的数据,然后我们进行赋值的同时,我们需要把它的上级ID也查询出来。下面让大家来看一下我的代码:

Linq的子查询

接下来,我们来进行子查询的嵌套,其实很简单就是在子查询中再查询出我的主表,然后通过条件来进行筛选,然后把表的聚类包名称给查询出来,接着让它返回序列中的第一个元素,如果序列中不包含如何元素,则返回默认值。代码如下:

Linq的子查询

这样代码就完成了,接下来让大家看一下效果图:

Linq的子查询

 

相关文章:

  • 2021-08-02
  • 2021-06-14
猜你喜欢
  • 2021-04-14
  • 2022-12-23
  • 2021-12-12
  • 2022-12-23
  • 2021-08-05
  • 2021-09-15
相关资源
相似解决方案