简单介绍一下连接查询:通过连接运算符可以实现多个表查询。连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志。from join_table1 join_type join_table2 on Join_condition 这个是SQL 中最简单的连接查询功能语法。在ALinq , Linq ,Entity Framework 中都有涉及到连接查询,在某种程度上的确简便了很多查询。但是个人认为,Linq to SQL ,ALinq 使用Linq 语句来连接查询数据库不是那么的方便,总感觉有些地方不是Linq 语句所能处理的。本文章出略的讲解ALinq 中连接查询数据。
1. 一对多查询
在ORM映射框架中我们听得最多的也就是什么 1 to 1, 1 to many ,many to many 等等。这代表着一种数据结构之间的关系。一对多查询也就是查询主表的时候附带查询子表中的集合信息。在很多情况下不建议采用一对多查询,因为这样是比较消耗性能的。ALinq 一对多查询例子如下:
1 /// <summary>
2 /// 一对多链接查询
3 /// </summary>
4 public void FunctionOnToMany()
5 {
6 OA_DBDataContext context = new OA_DBDataContext(new SqlConnection(connectionString));
7 context.Log = Console.Out;
8
9 var query = from r in context.TabRole
10 from u in r.TabUser
11 where r.Id == 1
12 select u;
13
14 foreach (var item in query)
15 {
16 Console.WriteLine("TabRole.Id >> " + item.TabRole.Id);
17 Console.WriteLine("TabUser.Id >> " + item.Id);
18 Console.WriteLine("\n");
19 }
20 }
2 /// 一对多链接查询
3 /// </summary>
4 public void FunctionOnToMany()
5 {
6 OA_DBDataContext context = new OA_DBDataContext(new SqlConnection(connectionString));
7 context.Log = Console.Out;
8
9 var query = from r in context.TabRole
10 from u in r.TabUser
11 where r.Id == 1
12 select u;
13
14 foreach (var item in query)
15 {
16 Console.WriteLine("TabRole.Id >> " + item.TabRole.Id);
17 Console.WriteLine("TabUser.Id >> " + item.Id);
18 Console.WriteLine("\n");
19 }
20 }