Linq 语法举例

1.简单的linq语法

//1

var ss = from r in db.Am_recProScheme

select r;

//2

var ss1 = db.Am_recProScheme;

//3

string sssql = "select * from Am_recProScheme";

2.where的查询

//1

var ss = from r in db.Am_recProScheme

where r.rpId > 10

select r;

//2

var ss1 = db.Am_recProScheme.Where(p => p.rpId > 10);

//3

string sssql = "select * from Am_recProScheme where rpid>10";

3.简单的函数计算(countminmaxsum

//1

////获取最大的rpId

//var ss = (from r in db.Am_recProScheme

//          select r).Max(p => p.rpId);

////获取最小的rpId

//var ss = (from r in db.Am_recProScheme

//          select r).Min(p => p.rpId);

//获取结果集的总数

//var ss = (from r in db.Am_recProScheme

//         select r).Count();

//获取rpId的和

var ss = (from r in db.Am_recProScheme

select r).Sum(p => p.rpId);

//2

//var ss1 = db.Am_recProScheme.Max(p=>p.rpId);

//var ss1 = db.Am_recProScheme.Min(p => p.rpId);

//var ss1 = db.Am_recProScheme.Count() ;

var ss1 = db.Am_recProScheme.Sum(p => p.rpId);

Response.Write(ss);

//3

string sssql = "select max(rpId) from Am_recProScheme";

sssql = "select min(rpId) from Am_recProScheme";

sssql = "select count(1) from Am_recProScheme";

sssql = "select sum(rpId) from Am_recProScheme";

4.排序order by desc/asc

var ss = from r in db.Am_recProScheme

where r.rpId > 10

orderby r.rpId descending  //倒序

//  orderby r.rpId ascending   //正序

select r;

//正序

var ss1 = db.Am_recProScheme.OrderBy(p => p.rpId).Where(p => p.rpId > 10).ToList();

//倒序

var ss2 = db.Am_recProScheme.OrderByDescending(p => p.rpId).Where(p => p.rpId > 10).ToList();

string sssql = "select * from Am_recProScheme where rpid>10 order by rpId [desc|asc]";

5.top(1)

//如果取最后一个可以按倒叙排列再取值

var ss = (from r in db.Am_recProScheme

select r).FirstOrDefault();

//()linq to ef 好像不支持 Last()

var ss1 = db.Am_recProScheme.FirstOrDefault();

//var ss1 = db.Am_recProScheme.First();

string sssql = "select top(1) * from Am_recProScheme";

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

//1

var ss = (from r in db.Am_recProScheme

orderby r.rpId descending

select r).Skip(10); //跳过前10条数据,取10条之后的所有数据

//2

var ss1 = db.Am_recProScheme.OrderByDescending(p => p.rpId).Skip(10).ToList();

//3

string sssql = "select * from  (select ROW_NUMBER()over(order by rpId desc) as rowNum, * from [Am_recProScheme]) as t where rowNum>10";

7.分页数据查询

//1

var ss = (from r in db.Am_recProScheme

where r.rpId > 10

orderby r.rpId descending

select r).Skip(10).Take(10); //取第11条到第20条数据

//2 Take(10): 数据从开始获取,获取指定数量(10)的连续数据

var ss1 = db.Am_recProScheme.OrderByDescending(p => p.rpId).Where(p => p.rpId > 10).Skip(10).Take(10).ToList();

//3

string sssql = "select * from  (select ROW_NUMBER()over(order by rpId desc) as rowNum, * from [Am_recProScheme]) as t where rowNum>10 and rowNum<=20";

8.包含,类似like ‘%%‘

//1

var ss = from r in db.Am_recProScheme

where r.SortsText.Contains("张")

select r;

//2

var ss1 = db.Am_recProScheme.Where(p => p.SortsText.Contains("张")).ToList();

//3

string sssql = "select * from Am_recProScheme where SortsText like ‘%张%‘";

9.分组group by

//1

var ss = from r in db.Am_recProScheme

orderby r.rpId descending

group r by r.recType 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);

}

//2

var ss1 = from r in db.Am_recProScheme

orderby r.rpId descending

group r by r.recType into n

select n;

foreach (var t in ss1)

{

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

}

//3

var ss2 = db.Am_recProScheme.GroupBy(p => p.recType);

foreach (var t in ss2)

{

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

}

//4

string sssql = "select recType,min(rpId),max(rpId),sum(rpId) from Am_recProScheme group by recType";

10.连接查询 

//1

var ss = from r in db.Am_recProScheme

join w in db.Am_Test_Result on r.rpId equals w.rsId

orderby r.rpId descending

select r;

//2

var ss1 = db.Am_recProScheme.Join(db.Am_Test_Result, p => p.rpId, r => r.rsId, (p, r) => p).OrderByDescending(p => p.rpId).ToList();

//3

string sssql = "select r.* from  [Am_recProScheme] as r inner join [dbo].[Am_Test_Result] as t on r.[rpId] = t.[rsId] order by r.[rpId] desc";

11.sql中的In

//1

var ss = from p in db.Am_recProScheme

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

select p;

foreach (var p in ss)

{

Response.Write(p.Sorts);

}

//2

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

时间: 2024-12-21 14:26:26

Linq 语法举例的相关文章

Linq语法详细

1.简单的linq语法 //1 var ss = from r in db.Am_recProScheme select r; //2 var ss1 = db.Am_recProScheme; //3 string sssql = "select * from Am_recProScheme"; 2.带where的查询 //1 var ss = from r in db.Am_recProScheme where r.rpId > 10 select r; //2 var ss

Linq语法

1.简单的linq语法 //1 var ss = from r in db.Am_recProScheme select r; //2 var ss1 = db.Am_recProScheme; //3 string sssql = "select * from Am_recProScheme"; 2.带where的查询 //1 var ss = from r in db.Am_recProScheme where r.rpId > 10  select r; //2 var s

LINQ 语法

语言集成查询 (LINQ) 是 Visual Studio 2008 和 .NET Framework 3.5 版中一项突破性的创新,它在对象领域和数据领域之间架起了一座桥梁. 传统上,针对数据的查询都是以简单的字符串表示,而没有编译时类型检查或 IntelliSense 支持.此外,您还必须针对以下各种数据源学习不同的查询语言:SQL 数据库.XML 文档.各种 Web 服务等.LINQ 使查询成为 C# 和 Visual Basic 中的一等语言构造.您可以使用语言关键字和熟悉的运算符针对强

Linq语法详细(三种方式:linq、Lambda、SQL语法)

三种方式:linq.Lambda.SQL语法 1.简单的linq语法 //1 var ss = from r in db.Am_recProScheme select r; //2 var ss1 = db.Am_recProScheme; //3 string sssql = "select * from Am_recProScheme"; 2.带where的查询 //1 var ss = from r in db.Am_recProScheme where r.rpId >

Linq语法及用法

引用来自:http://blog.sina.com.cn/s/blog_9c47a1520100vjuf.html Linq语法及用法 (2011-12-23 09:40:26) 转载▼ 标签: 集合 temp1 复本 t2 默认值 linq sql it 分类: SQL System.Linq.IGrouping<T> System.Linq.ILookup<TKey,TElement> System.Linq.IOrderedEnumerable<T> System

常用linq语法 - 孔小爽 - 博客园

常用linq语法 1.简单的linq语法 //1 var ss = from r in db.Am_recProScheme select r; //2 var ss1 = db.Am_recProScheme; //3 string sssql = "select * from Am_recProScheme"; 2.带where的查询 //1 var ss = from r in db.Am_recProScheme where r.rpId > 10 select r; /

LINQ语法详解

我会通过一些列的实例向大家讲解LINQ的语法. 先创建一个Person类,作为数据实体 public class Person { public string Name { get; set; } public string Sex { get; set; } public int Age { get; set; } } List<Person> list = new List<Person>() { new Person(){ Name="Olive",Sex

简单的linq语法

1.简单的linq语法 //1 var ss = from r in db.Am_recProScheme select r; //2 var ss1 = db.Am_recProScheme; //3 string sssql = "select * from Am_recProScheme"; 2.带where的查询 //1 var ss = from r in db.Am_recProScheme where r.rpId > 10 select r; //2 var ss

Linq To Sql中实现Left Join与Inner Join使用Linq语法与lambda表达式

当前有两个表,sgroup与sgroupuser,两者通过gKey关联,而sgroup表记录的是组,而sgroupuser记录是组中的用户,因此在sgroupuser中不一定有数据.需要使用Left Join获取数据: Linq语法如下: var sg = (from g in dc.sgroup join gu in dc.sgroupuser on g.gKey equals gu.gKey into l from lgu in l.DefaultIfEmpty() select new {