博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linq学习
阅读量:4949 次
发布时间:2019-06-11

本文共 1296 字,大约阅读时间需要 4 分钟。

1查询 语法:

  以from item in items 开始,items 为待处理的集合,item 为每一项的变量名; 最后要加上 select ,表示结果的数据;得 记得 select 一定要最后。这是刚用比较别扭的地方。

  1 )var r1 = dogs.Where(d => d.Id > 1);

  2 )var r2 = from d in dogs where d.Id>1 select d;

   lambda和linq编译后使同一个东西,本质上是一样的

2 排序 

  var items = from d in dogs orderby d.Age,d.MasterId descending select d;

3 join 

var r9 = from d in dogs join m in masters on d.MasterId equals m1.Id select new { DogName=d.Name,MasterName=m.Name};

注意 join 中相等不要用== ,要用 equals 。写 join 的时候 linq 比“lambda ”

4 group by  

  var r1 = from p in list

        group p by p.Age into g
        select new { Age = g.Key, MaxSalary = g.Max(p=>p.Salary), Count = g.Count() };

 

5混用

只有 Where,Select,OrderBy,GroupBy,Join 用 等这些能用 linq 写法,如果要用下面的“ Max,Min,Count,Average,Sum,Any,First,FirstOrDefault,Single,SingleOrDefault,Distinct,Skip,Take 等 ”则还要用 lambda

var c = (from p in list

      where p.Age>3
      select p
      ).Count();

 

6.查询 order by 的一个细节

EF 调用 Skip 之前必须调用 OrderBy:如下调用 var items = ctx.Persons.Skip(3).Take(5); 会报错“The method 'OrderBy' must be called before the method 'Skip'.)”,
要改成: var items =ctx.Persons.OrderBy(p=>p.CreateDateTime).Skip(3).Take(5);
这也是一个好习惯,因为以前就发生过(写原始 sql):分页查询的时候没有指定排序规则,以为默认是按照 Id 排序,其实有的时候不是,就造成数据混乱。写原始 SQL 的时候也要注意一定要指定排序规则

转载于:https://www.cnblogs.com/lyfingchow/p/6575987.html

你可能感兴趣的文章
分享一种需求评审的方案
查看>>
虚拟运营商10月或大面积放号 哭穷背后仍有赢家
查看>>
Server2016开发环境配置
查看>>
分布式光伏发电建设中的逆变器及其选型
查看>>
增强网络安全防御 推动物联网走向应用
查看>>
UML中关联,组合与聚合等关系的辨析
查看>>
《大数据管理概论》一3.2 大数据存储与管理方法
查看>>
PowerBuilder开发简单计算器
查看>>
怎样使用linux的iptables工具进行网络共享
查看>>
《HTML5与CSS3实战指南》——导读
查看>>
RHEL6下安装oracle 10g(一)
查看>>
Kconfig的格式
查看>>
关于Cursor的moveToFirst和moveToNext的意义
查看>>
个人--工资划分5份
查看>>
有关文件下载的文件名
查看>>
史上最详细的wamp配置虚拟域名步骤
查看>>
oracle 授权
查看>>
lv扩展磁盘空间
查看>>
java8之stream流的基本操作
查看>>
二维数组计算协方差java
查看>>