zoukankan      html  css  js  c++  java
  • LINQ to SQL学习笔记(四)——Join(1)

         本篇将介绍Join操作符的使用,Join操作符类似于SQL命令中的join关键字,都是用于进行表连接操作的,实现多个表之间的查询处理,当然此处的多表也包含自身与自身的连接。

         Join操作符的使用包括三类,分别为Join(Join查询),SelectMany(Select一对多选择)和GroupJoin(分组Join查询)。

    1、SelectMany

      SelectMany查询需要满足两个条件,1、查询语句中没有Join和into关键字,2、必须出现EntitySet。在表关系中包括一对一、一对多、多对多关系。

    (1)一对多关系

        一对多的关系可以理解成一个A对应多个B,例如一个班级对应多个学生。

    1
    2
    3
    4
    var query = from class in db.Classes
                            from stu in class.Students
                            where class.Grade == 5
                        select stu;

      上述语句描述Grade值等于5的班级的所有学生。在查询过程中,Students以EntitySet的形式出现在Classes类中。

    (2)多对多关系

      多对多的关系可以理解成一个A对应多个B,同时一个B又对应多个A。例如学生与课程之间的关系,一个学生可以选择多门课程,一门课程可以被多个学生选择。对应于多对多的关系,一般使用三张表来描述,两张实体表,一张关系表。

    1
    2
    3
    4
    5
    6
    7
    8
    var query = from s in db.Students
                        from ss in s.StudentCources
                         where s.Age == 20
                        select new {
                        s.FirstName,
                        s.LastName,
                        ss.Cources.Cource.Name
                        };               

      上述语句描述年龄为20岁的学生选择的课程名称和学生姓名。

    (3)自连接关系

      自连接关系描述的就是自己与自己进行连接,根据某个相同信息进行筛选。例如:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var query = from s1 in db.Students
                         from s2 in db.Students
                        where s1.Age == s2.Age
                        select new {
                            FirstName1=s1.FirstName,
                            LastName1 = s1.LastName,
                            FirstName2=s2.FirstName,
                            LastName2 = s2.LastName,
                            s1.Age
                        };

      上述语句描述了选择同龄学生,并显示他们的姓名和年龄。

  • 相关阅读:
    Windows Azure Storage (17) Azure Storage读取访问地域冗余(Read Access – Geo Redundant Storage, RA-GRS)
    SQL Azure (15) SQL Azure 新的规格
    Azure China (5) 管理Azure China Powershell
    Azure China (4) 管理Azure China Storage Account
    Azure China (3) 使用Visual Studio 2013证书发布Cloud Service至Azure China
    Azure China (2) Azure China管理界面初探
    Azure China (1) Azure公有云落地中国
    SQL Azure (14) 将云端SQL Azure中的数据库备份到本地SQL Server
    [New Portal]Windows Azure Virtual Machine (23) 使用Storage Space,提高Virtual Machine磁盘的IOPS
    Android数据库升级、降级、创建(onCreate() onUpgrade() onDowngrade())的注意点
  • 原文地址:https://www.cnblogs.com/xiaogui9527/p/2982320.html
Copyright © 2011-2022 走看看