LINQ отделка


LINQ отделка

Простой синтаксис LINQ

1 
2
3
4
5
6
7

вар сс = от г в db.Am_recProScheme выбора г; // 2 вар SS1 = db.Am_recProScheme; // 3 строка sssql = "выберите * из Am_recProScheme" ;





Запросы, где

1 
2
3
4
5
6
7
8

вар сс = от г в db.Am_recProScheme , где r.rpId> 10 выбора г; // 2 вар SS1 = db.Am_recProScheme.Where (р => p.rpId> 10 ); // 3 строка sssql = "выберите * из Am_recProScheme где rpid> 10" ;






Простая функция расчета (количество, мин, не более, сумма)

1 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

// получить максимальный rpid
вар СС = ( от R & ЛТ в db.Am_recProScheme SELECT , R & л) .MAX (Р => p.rpId); // получить наименьшее rpid уаг SS = ( от R & ЛТ в db.Am_recProScheme SELECT , R & ЛТ). мин (Р => p.rpId); // Получить общее количество результирующего набора вар SS = ( от R & ЛТ в db.Am_recProScheme SELECT , R & Lt) .Count (); // Получение rpId и вар СС = ( от R & ЛТ в БД. Am_recProScheme ВЫБРАТЬ R & Lt) .sum (P => p.rpId); // 2 вар











SS1 = db.Am_recProScheme.Max (р => p.rpId);
вар SS1 = db.Am_recProScheme.Min (р => p.rpId);
вар SS1 = db.Am_recProScheme.Count ();
вар SS1 = db.Am_recProScheme.Sum (р => p.rpId);
Response.Write (сс);
// 3
строка sssql = "выбрать макс (rpId) от Am_recProScheme" ;
sssql = "выберите мин (rpId) от Am_recProScheme" ;
sssql = "выберите отсчет (1) от Am_recProScheme" ;
sssql = "выберите сумму (rpId) от Am_recProScheme" ;

Порядок сортировки по убыванию / возрастанию

1 
2
3
4
5
6
7
8
9
10
вар сс = от г в db.Am_recProScheme , где r.rpId> 10 OrderBy r.rpId по убыванию //倒序// по возрастанию //正序выбора г; //正序вар SS1 = db.Am_recProScheme.OrderBy (р => p.rpId) .гд (р => p.rpId> 10 ) .ToList (); //倒序вар SS2 = db.Am_recProScheme.OrderByDescending (р => p.rpId) .где (р => p.rpId> 10 ) .ToList (); Строка sssql = "выберите * из Am_recProScheme где rpid> 10 Сортировать по rpId [возр | убыв]" ;









верхняя (1)

1 
2
3
4
5
6
7
//如果取最后一个可以按倒叙排列再取值
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";

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

1
2
3
4
5
6
7
8

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";

分页数据查询

1
2
3
4
5
6
7
8
9

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";

包含,类似like ‘%%’

1
2
3
4
5
6
7
8

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 '%张%'";

分组group by

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

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";

连接查询

1
2
3
4
5
6
7
8
9

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";

sql中的In

1
2
3
4
5
6
7
8
9
10

вар сс = от р в дБ. Am_recProScheme , где ( новый INT ? [] { 24 , 25 , 26 } ). Содержит ( p.rpId ) выберите р ;


Еогеасп ( вар р в сс)
{
Response.Write (p.Sorts);
}
// 2
строка й = "выберите * из Am_recProScheme , где в rpId (24,25,26)" ;

справочный материал

Оригинал: Big Box  LINQ отделка


рекомендация

отwww.cnblogs.com/chinatrump/p/11584965.html