-------适合自己的才是最好的!!!

LINQ查询知识总结:案例分析

案例:汽车表car,系列表brand,厂商表productor

private MyCarDataContext  _Context = new MyCarDataContext();

(1)查询全部汽车信息

var list = _Context.Car;

LINQ语法:var list = from p in _Context.Car select p;

(2)简单筛选行:查询车系代号是 b002的所有车 关键点:“==”

var list = _Context.Car.Where(p=>p.Brand=="b002");

LINQ语法:var list = from p in _Context.Car where p.Brand == "b002" select p;

(3)简单投影列:只查询三列:名称,价格,排量   关键点:“new{ }”

var list = _Context.Car.Select(p=>new {p.Name,p.Price,p.Exhaust});

LINQ语法:var list = from p in _Context.Car select new {p.Name,p.Price,p.Exhaust}

(4)多条件查询---逻辑与:查询排量大于2000并且价格小于50万的车 关键点:“&&”

var list = _Context.Car.Where(p=>p.Exhaust>2000&&p.Price<50);

var list = _Context.Car.Where(p=>p.Exhaust>2000).Where(p=>p.Price<50);

LINQ语法:var list = from p in _Context.Car where p.Exhaust>2000 && p.Price<50 select p;

(5)多条件查询---逻辑或:查询排量大于2000或者价格小于50万的车  关键点:“||”

var  list1 = _Context.Car.where(p=>p.Exhaust>2000);

var list2 = _Context.Car.Where(p=>p.Price<50);

var list = list1.union(list2);

LINQ语法:var list = from p in _Context.Car where p.Exhaust>2000 || p.Price<50 select p;

(6)模糊查询

《1》查询包含某个内容:查询汽车名称中包含“马”的车   关键点:“Contains("包含的内容")”

var list = _Context.Car.Where(p=>p.Name.Contains("马"));

LINQ语法:var list = from p in _Context.Car where p.Name.Contains("马") select p;

《2》查询汽车名称以“宝马”开头的车     关键点:“StartWith("内容")”

var list = _Context.Car.Where(p=>p.Name.StartWith("宝马"));

LINQ语法:var list = from p in _Context.Car.StartWith("宝马") select p;

《3》查询汽车名称以“版”结尾的车    关键点:“EndsWith("内容")”

var list = _Context.Car.Where(p=>p.Name.EndsWith("版"));

LINQ语法:var list =  from p in _Context.Car where p.Name.EndsWith("版") select p;

《4》查询汽车名称倒数二三个字是“豪华”的车    关键点:“Substring()”

var list = _Context.Car.Where(p=>p.Name.Substring(p.Name.Length-3,2));

LINQ语法:var list = from p in _Context.Car where p.Name.Substring(p.Name.Length-3,2) select p;

(7)多表查询

《1》查询厂商是“一汽丰田”下的所有车

var list = _Context.Car.Where(p=>p.Brand1.Productor.Prod_Name=="一汽丰田");//Brand1和Productor都是数据库表映射出的对象

LINQ语法:var list  = from p in _Context.Car where p.Brand1.Productor.Prod_Name=="一汽丰田" select p;

《2》查询与宝马5同厂商的所有车

string prodCode = (_Context.Car.Where(p=>p.Name.StartWith("宝马5"))).first().Brand1.Productor.Prod_Code;

var list = _Context.Car.Where(p=>p.Brand1.Productor.Prod_Code==prodCode);

LINQ语法:string prodCode = (from p in _Context.Car where p.Name.StartWith("宝马5") select p).first().Brand1.Productor.Prod_Code;

var list = from m in _Context.Car where p.Brand1.Productor.Prod_Code==prodCode select m;

(7)分页查询

《1》每页5条记录,查询第3页

var list = _Context.Car.Skip(2*5).Take(5);//2:代表前两页,5:代表每页显示5条,Skip(2*5):代表跳过前两页(前10条记录),Take(5):代表查询5条记录回来

LINQ语法:var list = from p in _Context.Car.Skip(2*5).Take(5) select p;

《2》查询数据库总记录数

var count = _Context.Car.Count();

LINQ语法:var list = from p in _Context.Car.Count();

(8)排序查询

《1》按价格升序排序

var list = _Context.Car.Orderby(p=>p.Price) ;

LINQ语法:var list = from p in _Context.Car orderby p.price select p;

《2》按价格降序排序

var list = _Context.Car.OrderByDescending(p=>p.Price);

LINQ语法:var list = from p in _Context.Car orderby p.Price descending select p;

(9)取集合中某个对象

《1》取集合中第一个对象

Car data = _Context.Car.First();

LINQ语法:var list = from p in _Context.Car select p;  Car data = list.first();

《2》取集合中最后一个对象

Car data = _Context.Car.orderbydescending().first();

也可以这样:

var list = _Context.Car.orderbydescending().ToList();//转化为内存中的对象

Car data = list.Last();

《3》取集合中的某个(如第五个)对象:思路--去掉该对象前面的所有对象,取下一个对象即可

var list = _Context.Car.Skip(4).Take(1);

(10)聚合函数(Sum(),Average(),Max(),Min())

使用实例:

var list = _Context.Car.Sum(p=p.Price).value.tostring();

(11)Distinct关键字(去除查询出的记录中重复的记录)

使用实例:

var list = _Context.Car.Select(p=>p.Name).Distinct();

LINQ查询知识总结的更多相关文章

  1. LinqToDB 源码分析——轻谈Linq查询

    LinqToDB框架最大的优势应该是实现了对Linq的支持.如果少了这一个功能相信他在使用上的快感会少了一个层次.本来笔者想要直接讲解LinqToDB框架是如何实现对Linq的支持.写到一半的时候却发 ...

  2. LINQ 查询表达式(C# 编程指南)

    语言集成查询 (LINQ) 是一组技术的名称,这些技术建立在将查询功能直接集成到 C# 语言(以及 Visual Basic 和可能的任何其他 .NET 语言)的基础上.  借助于 LINQ,查询现在 ...

  3. Entity Framework 6 Recipes 2nd Edition(13-6)译 -> 自动编译的LINQ查询

    问题 你想为多次用到的查询提高性能,而且你不想添加额外的编码或配置. 解决方案 假设你有如Figure 13-8 所示的模型 Figure 13-8. A model with an Associat ...

  4. Linq查询基本操作

    摘要:本文介绍Linq查询基本操作(查询关键字) - from 子句 - where 子句 - select子句 - group 子句 - into 子句 - orderby 子句 - join 子句 ...

  5. C#基础:LINQ 查询函数整理

    1.LINQ 函数   1.1.查询结果过滤 :where() Enumerable.Where() 是LINQ 中使用最多的函数,大多数都要针对集合对象进行过滤,因此Where()在LINQ 的操作 ...

  6. 《Entity Framework 6 Recipes》中文翻译系列 (26) ------ 第五章 加载实体和导航属性之延缓加载关联实体和在别的LINQ查询操作中使用Include()方法

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 5-7  在别的LINQ查询操作中使用Include()方法 问题 你有一个LINQ ...

  7. Rafy 中的 Linq 查询支持(根据聚合子条件查询聚合父)

    为了提高开发者的易用性,Rafy 领域实体框架在很早开始就已经支持使用 Linq 语法来查询实体了.但是只支持了一些简单的.常用的条件查询,支持的力度很有限.特别是遇到对聚合对象的查询时,就不能再使用 ...

  8. c# Linq查询

    c#提供的ling查询极大的遍历了集合的查询过程,且使用简单方便,非常的有用. 下面将分别用简单的例子说明:ling基本查询.延迟查询属性.类型筛选.复合from字句.多级排序.分组查询.联合查询.合 ...

  9. Linq查询表达式

    目录 1. 概述 2. from子句 3. where子句 4. select子句 5. group子句 6. into子句 7. 排序子句 8. let子句 9. join子句 10. 小结 1. ...

随机推荐

  1. 浅谈自学Python之路(day3)

    今天的主要内容是: 撒 文件操作 对文件操作的流程: 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 现有文件如下: tonghuazhen 听说白雪公主在逃跑 小红帽在担心 ...

  2. Java学习笔记之从C++转Java

    之前一直是做C++后台开发的,习惯了命令行和g++,由于工作原因现在开始转java. 1.参考书籍:java编程思想(think in java),java核心技术(core java); 2.怎么在 ...

  3. ROS-URDF-Xacro

    前言:Xacro是一种宏语言,允许代码复用,使用Xacro可以减少URDF文件中的代码量. 参考自:http://wiki.ros.org/urdf/Tutorials/Using%20Xacro%2 ...

  4. MySQL 数据的增删改查

    一.数据库的增删改 一. 在MySQL管理软件中,可以通过SQL语句中的DML语言来实现数据的操作,包括 1.使用INSERT实现数据的插入 2.UPDATE实现数据的更新 3.使用DELETE实现数 ...

  5. C#微信公众号的开发——服务配置

    最近因为需要用C#开发微信公众号的一些功能,记录一下开发公众号的一些坑..... 首先先介绍一下,微信公众号的官方文档.虽然这个文档我感觉比较糙,但是还是可以借鉴一下让我们摸着石头过河的. 首先我们得 ...

  6. 自学Python六 爬虫基础必不可少的正则

    要想做爬虫,不可避免的要用到正则表达式,如果是简单的字符串处理,类似于split,substring等等就足够了,可是涉及到比较复杂的匹配,当然是正则的天下,不过正则好像好烦人的样子,那么如何做呢,熟 ...

  7. 实验0 安装GLUT包及工程的创建与运行

    下面将对Windows下在MicroSoft Visual C++2010(简称MSVC)环境下的OpenGL编程进行简单介绍. 1.安装GLUT工具包 GLUT不是OpenGL所必须的,但它会给我们 ...

  8. 【sqli-labs】 less25a GET- Blind based -All you OR&AND belong to us -Intiger based(GET型基于盲注的去除了or和and的整型注入)

    因为过滤是针对输入的字符串进行的过滤,所以如果过滤了or and的话,提交id=1和id=and1结果应该相同 http://localhost/sqli-labs-master/Less-25a/? ...

  9. drf04 drf视图类

    REST framework 提供了众多的通用视图基类与扩展类,以简化视图的编写. 1.2个视图基类 1.1. APIView rest_framework.views.APIView APIView ...

  10. hadoop spark 总结

    yarn  由,资源管理器rm,应用管理器am appMaster,节点管理器nm 组成! 图侵删 yarn 的设计,是为了代替hadoop 1.x的jobtracker 集中式一对多的资源管理「资源 ...