Linq 嵌套子查询

Linq 嵌套子查询

文献种类:专题技术文献;
开发工具与关键技术:VS
作者:蛋蛋;
撰写时间:2019/04/20

一.什么是Linq语句?是C#和VB.NET中的统一查询语法,用于保存和检索不同来源的数据。它集成在C#或VB中,从而消除了编程语言和数据库之间的不匹配,以及为不同类型的数据源提供单个查询接口。
例如,SQL是一种结构化查询语言,用于保存和检索数据库中的数据。查询多个数据源的标准化方式:可以使用相同的LINQ语法来查询多个数据源。使代码更易读,减少了要编写的代码量。

二.Linq与Linq嵌套子查询语句有什么区别?Linq嵌套子查询是在Linq的基础上进行一个或多个嵌套,一般嵌套两次就足够了,一来减轻服务器负担二来思维逻辑的转换
三.接下来我们看例图:
在这里插入图片描述
如图所示,我需要做出的权限是从模块表查询到操作类型表但是两张表毫无关联,无法直接连接,这时候就需要一张中间媒介的表(模块明细表)进行搭建使模块表可以获取到操作类型表中的字段,从而实现我想要查询出的所有条件。

  1. 需要联表就会想到建立实体类
    涉及到多表时需要建立实体类,继承主表然后将缺少的字段添加到一个实体类当中;命名为…VoVo:是value object的缩写;作用:它为了取值方便,所以将数据封装成一个对象,这就是我们所说的VoVo则是主要用于逻辑层(Controllers)和表示层(Views)之间的数据处理封装
  2. ModularAndDetailVo 从单词表面的意思来理解就是两个单词的组合;模块表And模块明细表
    在这里插入图片描述
    3)我们看到在实体类当中嵌套了另外的一个实体类
    ModularDetailVo public class ModularDetailVo:SYS_ModularDetail //继承模块明细表
    { public string OpType { get; set; } //操作类型
    //模块表—>操作类型表(需要模块明细表作为中间媒介)
    }
    这两个实体类都分别继承模块表以及模块明细表,这么做主要是查询到所需要的全部内容;通过模块明细表作为的中间媒介实现不同用户体验到的权限也不同;
    4) 从模块表查询根据模块表的主键ID进行排序 new ModularAndDetailVo (模块表与模块明细表组合的实体类)查询出模块ID以及模块名称
    在这里插入图片描述 Linq嵌套子查询 ModularDetails为自命名为第一个实体类当中的模块明细 根据模块明细表连操作类型表(模块明细的操作类型ID等于操作类型的类型ID)再根据外部结果作为子查询条件;根据模块明细ID进行排序 查询出最终需要的条件模块明细ID,及操作ID/名称

猜你喜欢

转载自blog.csdn.net/qq_42577408/article/details/89440525