tnblog
首页
视频
资源
登录

Linq 语法

4452人阅读 2021/8/31 18:08 总访问:1595088 评论:0 收藏:0 手机
分类: Linq

https://www.cnblogs.com/xszjk/articles/5517588.html

 

                                     本文纯手写,可能单词有误

1.普通

var s=from a in table select a;

var s1=table;


2.接where条件

var s=from a in table where a.id>10 select a;

var s1=table.where(a=>a.id>10);


3.简单函数计算

//获取最大的Id

var s=(from a in table select a).max(p=>p.id);

//获取最小值

var s1=(from a in table select a).min(p=>p.id);

//获取结果的总数量

var s2=(from a in table select a).count();

//获取年龄的和

var s3=(from a in table select a).sum(p=>p.ages);

//获取最大的id

var m=table.max(a=>a.id);

//获取最小值

var m1=table.min(a=>a.id);

//获取结果总数

var m2=table.count();

//获取年龄的和

var m3=table.sum(a=>a.ages);


4.排序order by desc/asc

var s=from a in table where s.id >10

orderby a.id descending //倒序

// orderby a.id ascending //正序

select a;

var m=table.orderby(a=>a.id).where(a=>a.id>10); //正序

var m2=table.orderbydescending(a=>a.id>10);//倒序


5.top(1)取第一条数据

var s=(from a in table select a).FirstOrDefault();

var m=table.FirstOrDefault();


5.1取最后一条数据

var s=(from a in table orderby a.id descending select a).FirstOrDefault();

var m=table.orderbydescending(a=>a.id).FirstOrDefault();


6.跳过前面多少条数据取余下的数据

var s=(from a in  table orderby a.id descending).skip(10);

var m=table.orderbydescending(a=>a.id).skip(10).Tolist();


7.分页数据查询

//取第11条到第20条数据

var s=(from a in table where a.id>10 orderby a.id descending select a).skip(10).Take(10);

var m=table.orderbydescending(a=>a.id).where(a=>a.id>10).skip(10).Take(10);


8.包含,类似like '%%'  where  u.EndsWith("Y")

//查询名称含有“张”的人

var s=from a in table

 where a.Names.Contains("张") 

select a;

var m=table.where(a=>a.Names.Contains("张")).Tolist;

strng sql="select * from htable where Name like'%张%'";


9.分组group by

var s=from a in table ordeby a.id desceding 

group a by a.Names into n

select new{

                n.Key,  //这个Key是recType

                rpId = n.Sum(r => r.rpId), //组内rpId之和

                MaxRpId = n.Max(r => r.rpId),//组内最大rpId

                MinRpId = n.Min(r => r.rpId), //组内最小rpId

}

foreach (var t in ss){

       Response.Write(t.Key + "--" + t.rpId + "--" + t.MaxRpId + "--" + t.MinRpId);

}

var s2=from a in table orderby a.id descending

group a by a.Names into n

select n;

foreach (var t in ss1){

      Response.Write(t.Key + "--" + t.Min(p => p.rpId));

}


var m=table.groupby(a=>a.Names);

 foreach (var t in ss2){

       Response.Write(t.Key + "--" + t.Min(p => p.rpId));

}


10.连接查询 

var s=from a in table 

join b in table2 on a.id equals b.id

orderby a.id descending

select a;


var m=table.join(table2, a=>a.id,b=>b.id,(a,b)=>a).orderbyDescending(a=>a.id).Tolist();


11.sql中的In

var s=from p in table 

where (new int?[] {24,25,26}).Contains(p.id)

select p;

//2

string sql = "select * from Am_recProScheme where rpId in(24,25,26)";



LINQ标准查询操作符(二)——Join、GroupJoin、GroupBy、Concat、

四、联接操作符

https://www.cnblogs.com/dotnetmvc/p/3680151.html


join查询


            //查询语法

var query =

                (from p in db.Products

                 join c in db.Categories on p.CategoryID equals c.CategoryID

                 where p.CategoryID == 1

                 select new { p.ProductID, p.ProductName, c.CategoryID, c.CategoryName }).ToList();

            //方法语法

var m=table.join(table,a=>a.id,b=>b.id,(a,b)=>{a.id,b.name,b.id}).where(a=>a.id==2);


// 分组链表查询GroupJoin

var m = (await _ClassRepository.GetAllListAsync()).GroupJoin((await _StudentRepository.GetAllListAsync()), a => a.Id, b => b.CId,

                    (a, b) => new ClassAndStudentGroupjoinDto

                    {

                        ClasssName = a.ClasssName,

                        Students = ObjectMapper.Map<List<Student>>(b),

                    }).ToList();


into:把前面查询的结果和结果结构注入到一个新自动生成的对象里面,例如

var s = from a in await _ClassRepository.GetAllListAsync()

                        join b in await _StudentRepository.GetAllListAsync() on a.Id equals b.CId into c

                        select new

                        {

                            a.ClasssName,

                            c

                        };

into注入到了c。


异步方法

一般是 await 具体语法.to...Async();要引入命名空间: using Microsoft.EntityFrameworkCore;

如:

var model2 = await _ApplydboRepository.GetAll().Join(_LogssRepository.GetAll(), a => a.Apptimes, b => b.Datatimes,

                   (a, b) => b).Where(b => b.Correct != null).FirstOrDefaultAsync();

 var model3 = await _ApplydboRepository.GetAll().Join(_LogssRepository.GetAll(), a => a.Apptimes, b => b.Datatimes,

                   (a, b) => b).Where(b => b.Correct != null).ToListAsync();














评价

Linq解决商品和其下sku的筛选排序查询

本是sql to linq的东西,但是用的框架是.core 2.1,所以就归到core里吧最近遇到一个稍微复杂点的小问题需求:商城的商品列...

Linq or Sql 取树末级节点

List&lt;Entity&gt;list=newList&lt;Entity&gt;{ newEntity(){Id=1,Name=&quot;根&quot;,Pid=0}, newEntity(){Id=2,Name=...

多表分组,排序,混合查询的Linqlamdba语句

多表分组,排序,混合查询例如:显示每个人的父亲,对应的分数,考试的科数linq语句varquery=fromuinoae.users joinpinoae...

重要sql语句和Linqlamdba分组条件查询语句

每天记录一点点我希望有个如你一般的人我希望有个如你一般的人,如山间清爽的风,如古城温暖的光,从清晨到夜晚,由山野到...

Linq是什么?

一切皆可LINQ,一切皆有可能?LINQ(发音:Link)是语言级集成查询(LanguageINtegratedQuery)?LINQ是一种用来进行数据访...

Linq简单介绍

什么是linq:Languagle intergrated query 语法集成查询 Linq的分类: Linq to object : linq操作系统对象Linq to sql ...

Linq多条件查询方法

其实就是利用or,and的小技巧而已,直接贴代码吧 var result = from query in userInfos where (string.I...

Linq基础

前言linq使用基础一、什么是Linq:语言集成查询二、 linq作用:简化查询三、Linq分类: Linq to object :linq操作内存集合 ...

C Enumerable 类 Linq、EF、序列、列表 基本能用到的方法

Enumerable 类参考定义命名空间:System.Linq程序集:System.Linq.dll提供一组用于查询实现IEnumerable&lt;T&gt;的对象的stat...

sqlsugar in多字段Linq 多字段查询多对多查询方式。 in and

sqlsugar in多字段版本&gt;=5.1.4.67-preview04 List&lt;OrderItem&gt; list=xxx; db.Queryable&lt;OrderItem&gt;().Wh...

Python学习 2-基本语法

基础:python脚本语言,不需要编译(像C#、Java、PHP、C++需要编译成机器可识别的语言), 而直接由解释器解释,很多地方类似...

英语常用语法

should后面的be变成is为什么should是助动词(情态动词),与助动词连用的动词,必须以动词原型形式出现。 所以系动词必须要...

C语法

泛型:可以让多个类型共享一组代码,可以用不同的类型进行实例化。(写的比较抽象) C#中提供了5中泛型::类、结构、接口、...

Vue.js 模板语法

插值文本插值&lt;div id=&quot;app&quot;&gt; &lt;p&gt;{{ message }}&lt;/p&gt;&lt;/div&gt;Html使用 v-html 指令用于输...

什么是语法糖?

今天被一个刚毕业的朋友问道什么是语法糖,按理说这种问题应该是很简单的,本来想让他自己去百度,但转念一想自己刚毕业的...
没有个性,不需要签名
排名
4
文章
473
粉丝
3
评论
2
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术