Linq语句查询

开发工具与关键技术:VS

作者:老岑

撰写时间:2019年4月3日

这个查询是需要添加数据库实体数据模型的,这个就不多讲了

Linq语句查询,目前的学习进度来说也就是我们的单表和多表查询。

它为匿名类型查询提供了一种很方便的方法,可用来将一组只读属性封装到单个对象中,而且还不需要先定义一个显式类型,因为它的类型名字直接由编译器生成,而且每一个属性的类型都是由编译器推断。

我们先试一下如何用linq语句查询。

var匿名类型的关键字,是定义数据类型的间接方式。

首先我们用中文来理解一下怎么去查询。

比如你要查某个学院有什么专业,

var ??(??代表一个变量)= from ?? in myModel.专业(在数据库里查找表)

select new(挑选你所需要的数据)

{

id=??。它的id

text=??。它的名字

}

看完这个之后我们用一个简单的例子来总结一下。

根据学院ID查询年级信息

public ActionResult SelectGradeByAcademeID(int AcademeID)【在学院ID里面找年级的信息】

{

var listGrade = (from tbGrade in myModel.SYS_Grade

join tbAcademe in myModel.SYS_Academe on tbGrade.AcademeID equals tbAcademe.AcademeID

where tbGrade.AcademeID == AcademeID

select new

{

id = tbGrade.GradeID,

text = tbGrade.GradeName

}).ToList();

return Json(listGrade, JsonRequestBehavior.AllowGet);

}

看完这串代码,我们可以把上面的理解套入进去理解一下,

我们来一句一句的分析它:

var listGrade = (from tbGrade in myModel.SYS_Grade

(from tbGrade in myModel.SYS_Grade赋值给listGrade

join tbAcademe in myModel.SYS_Academe

join(重新命名)tbAcademe in myModel.SYS_Academe学院数据库里面的数据

on tbGrade.AcademeID equals tbAcademe.AcademeID

根据ntbGrade.AcademeID equals(连接) tbAcademe.AcademeID

where tbGrade.AcademeID == AcademeID

在tbGrade.AcademeID里== AcademeID它的时候

我们就在这个表里面去挑选我们所需要的东西。

select new

{

id = tbGrade.GradeID,

text = tbGrade.GradeName

}).ToList();

id = tbGrade.GradeID, 年级的id

text = tbGrade.GradeName 年级的名字。

return Json(listGrade, JsonRequestBehavior.AllowGet);

因为我们前面的那一个列表是listGrade,所以我们就在Json里面返回一个listGrade。

这是使用linq语句查询后的效果图。

这就是简单的linq语句查询了。

原文地址:https://www.cnblogs.com/ai2050/p/10733303.html

时间: 2024-10-09 13:32:18

Linq语句查询的相关文章

Linq语句查询简介

查询是一种从数据源检索数据的表达式.查询通常用专门的查询语言来表示.随着时间的推移,人们已经为各种数据源开发了不同的语言:例如,用于关系数据库的 SQL 和用于 XML 的 XQuery.因此,开发人员不得不针对他们必须支持的每种数据源或数据格式而学习新的查询语言.LINQ 通过提供一种跨各种数据源和数据格式使用数据的一致模型,简化了这一情况.在 LINQ 查询中,始终会用到对象.可以使用相同的基本编码模式来查询和转换 XML 文档.SQL 数据库.ADO.NET 数据集..NET 集合中的数据

C#学习记录(七)LINQ语句及LAMDA表达式

LINQ LINQ是一种集成在计算机语言里的信息查询语句,可以让编写者以代码的方式操作数据库. 在C#中,LINQ语句有两种写法. 这是第一种写法 IEnumerable<Customer> result = from customer in customers where customer.FirstName == "Donna“ select customer; 由于这种写法比较容易和SQL语言混淆,所以我更倾向于使用另一种写法 IEnumerable<Customer&g

IEnumerable和IQueryable和Linq的查询

IEnumerable和IEnumerable 1.IEnumerable查询必须在本地执行.并且执行查询前我们必须把所有的数据加载到本地.而且更多的时候.加载的数据有大量的数据是我们不需要的无效数据.但是我们却不得不传输更多的数据.做更多的无用功.使用IEnumerable,所有对于IEnumerable的过滤,排序等操作,都是在内存中发生的.也就是说数据已经从数据库中获取到了内存中,只是在内存中进行过滤和排序操作. 2.IQueryable却总能只提供你所需要的数据.大大减少了数据的传输IQ

LINQ标准查询操作符详解(转)

 一. 关于LINQ       LINQ 英文全称是“Language-Integrated Query”,中文为“语言集成查询”,它是微软首席架构师.Delphi 之父和C# 之父——Anders Hejlsberg 提出的并由其团队着力打造的一组用于c#和Visual Basic语言的扩展,为 C# 和 Visual Basic 语言语法提供强大的查询功能.微软从2003年开始启动LINQ的开发,在VisualStudio2008中开始加入LINQ功能. LINQ提供的便利: 1)使用一种

Linq 动态查询排序

Linq的排序一般是这样写的: query.OrderBy(x => x.Tel).Skip(0).Take(10); 实际使用中排序字段可能是通过字符类型的参数来设置的,于是想这样实现: query.OrderBy(x=>x.GetType().GetField("Tel")).Skip(0).Take(10); 上面的写法是无法编译通过的,此路不通,于是找到一个order扩展类: 1 using System; 2 using System.Linq; 3 using

Linq语句概要

这些都是在SQL语句中经常用到的,因此从形式上看,LINQ 语句与 SQL有很多相似之处.但尽管如此,还应该明确,LINQ与SQL是两种完全不同性质的语言: 第一. LINQ是面向对象的强类型(类型安全)语言: 第二. 从理论上讲,LINQ几乎可以用来访问所有类型的数据(包括数据库). 7.3.2 语句示例 例1.下面是LINQ的一个表达式: var course = from w in "语文 数学 英文 物理 计算机 伦理学 新闻学".Split()      where w.Le

LINQ语句中的.AsEnumerable() 和 .AsQueryable()的区别【转】

在写LINQ语句的时候,往往会看到.AsEnumerable() 和 .AsQueryable() .例如: string strcon ="Data Source=.\\SQLEXPRESS;Initial Catalog=Db_Example;Persist Security Info=True;User ID=sa;Password=sa";SqlConnection con =new SqlConnection(strcon);con.Open();string strsql

动态拼接liinq 使用Expression构造动态linq语句

最近在做动态构造linq语句,从网上找了很多,大多数,都是基于一张表中的某一个字段,这样的结果,从网上可以搜到很多.但如果有外键表,需要动态构造外键表中的字段,那么问题来了,学挖掘机哪家强?哦,不是,应该怎么做呢. 关于动态构造linq的,http://www.cnblogs.com/blusehuang/archive/2007/07/13/816970.html   该文章已经描述的很清楚了.我也不多说了. 其中,关键的代码是: Expression con = Expression.Cal

LINQ语句中的.AsEnumerable() 和 .AsQueryable()的区别

在写LINQ语句的时候,往往会看到.AsEnumerable() 和 .AsQueryable() . 上述代码使用LINQ 针对数据集中的数据进行筛选和整理,同样能够以一种面向对象的思想进行数据集中数据的筛选.在使用LINQ 进行数据集操作时,LINQ 不能直接从数据集对象中查询,因为数据集对象不支持LINQ 查询,所以需要使用AsEnumerable 方法返回一个泛型的对象以支持LINQ 的查询操作. .AsEnumerable()是延迟执行的,实际上什么都没有发生,当真正使用对象的时候(例