文章已阅读
 

LINQ即Language Integrated Query(语言集成查询)
在平常的编写代码中,Linq提供了丰富的查询功能,就是有一点要注意,Linq中 where 的查询与SQL命令中的 Where 作用相似,都是起到范围限定,也就是的过滤作用,而判断条件就是它后面所接的子句
一、整理了一下,LINQ的基本语法有8种上下文关键字,注意是关键字,这些关键字的具体说明如下:
①from:指定范围变量和数据源
②where:根据bool表达式从数据源中筛选数据
③select:指定查询结果中的元素所具有的类型或变现形式
④group:对查询结果按照键值进行分组
⑤into:提供一个标识符,它可以充当对join、group、或者select子句结果的引用
⑥orderby:对查询出的元素进行排序
⑦join:按照两个指定匹配条件并使用 equals 来连接两个数据源
⑧let:产生一个用于储存查询表达式中的子表达式查询结果的变量范围

二、Linq单表查询的写法
(from 自定义的表名 in 声明的Model对象.查询的表
where 自定义的表名.字段1 关系运算符 值 && 自定义的表名.字段2 关系运算符 值】
【orderby 自定义的表名.字段】
【select 自定义的表名】
【select new {
自定义的表名.字段1,
自定义的表名.字段2,
自定义的表名.字段3,

}】.ToList();
或者
(from 自定义的表名 in 声明的Model对象.查询的表
where 自定义的表名.字段1 关系运算符 值 && 自定义的表名.字段2 关系运算符 值】
【orderby 自定义的表名.字段】
【select 自定义的表名】
【select new 类名{
类的属性1=自定义的表名.字段1,
类的属性2=自定义的表名.字段2,

}】.Single();
然后就是结尾提取数据的方式:
①Count: —->统计 或者 查询有多少条数据
②Single: —-> 查询单个数据(结果只能有一条数据,必须=1)
③ToList: —-> 查询多条数据并转化为List (列表的方法)
④ToArray: —->查询多条(数组的方法)

再给出一个例子以便对照学习

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
var nba_stars = new List<NBA_Star> {
new NBA_Star{ FirstName="迈克尔", LastName="乔丹", Champion=6},
new NBA_Star{ FirstName="蒂姆", LastName="邓肯", Champion=5},
new NBA_Star{ FirstName="勒布朗", LastName="詹姆斯", Champion=3},
new NBA_Star{ FirstName="史蒂芬 ", LastName="库里", Champion=3},
new NBA_Star{ FirstName="史蒂夫 ", LastName="纳什", Champion=0}
};



//查询语法查询出,至少得到5个总冠的球星

var starts = from star in nba_stars
where star.Champion >= 5
select new
{
Name = star.FirstName + "." + star.LastName,
Champion = star.Champion
};
Console.WriteLine("至少五个总冠军的球星");
foreach (var item in starts)
{
Console.WriteLine($"姓名:{item.Name},总冠军:{item.Champion}");
}
Console.WriteLine();

//查找至少得到5个总冠的球星的Lambda
var starts2 = nba_stars.Where(s => s.Champion >= 5).Select(s => new
{
Name = s.FirstName + "." + s.LastName,
Champion = s.Champion
});

foreach (var item in starts2)
{
Console.WriteLine($"姓名:{item.Name},总冠军:{item.Champion}");
}
Console.WriteLine();


//五个总冠军的人数
var starts3 = nba_stars.Where(s => s.Champion >= 5).Count();
Console.WriteLine("至少得到5个总冠的球星人数"+starts3);
Console.WriteLine();

//最后一个冠军
var last_star = nba_stars.LastOrDefault();
Console.WriteLine("最后一个夺冠球星"+last_star.FirstName+"."+last_star.LastName);
Console.WriteLine();



//得到六冠的球星是
var Six_Star = nba_stars.Select(ss => new
{
Name = ss.FirstName + "." + ss.LastName,
Champion = ss.Champion
}).FirstOrDefault(s => s.Champion == 6);
Console.WriteLine($"得到6冠的球星是{Six_Star.Name}");
Console.WriteLine();

---Linq的增删改
InsertOnSubmit() 插入数据
SubmitChanges() 更新数据
DeleteOnSubmit() 删除数据


2023-02-02

浏览 |

© 2023 南疆 with help from Hexo and Twitter Bootstrap. Theme by Freemind.

container-narrow -->