• Linq中的左连接(left join)有连接(right join)查询
  • 呼吸的金鱼 发表于 2015/10/26 18:57:00 | 分类标签: Linq连接查询 左连接 右连接
  • 数据库的连接查询,比如左连接(left join),右连接(right join)等操作十分常见,这些语法对于写惯了T-SQL语句的人来说易如反掌,那么如何在Linq中实现数据库的左连接查询和右连接查询呢?
     
    要用Linq实现左连接,写法如下
    1. DataClasses1DataContext db = new DataClasses1DataContext();  
    2. var leftJoinSql = from student in db.Student  
    3.                   join book in db.Book on student.ID equals book.StudentID into temp  
    4.                   from tt in temp.DefaultIfEmpty()  
    5.                   select new  
    6.                   {  
    7.                        sname= student.Name,  
    8.                        bname = tt==null?"":tt.Name//这里主要第二个集合有可能为空。需要判断  
    9.                   };  

    用Linq实现右连接,写法如下
    1. DataClasses1DataContext db=new DataClasses1DataContext();  
    2. var rightJoinSql = from book in db.Book  
    3.                    join stu in db.Student on book.StudentID equals stu.ID into joinTemp  
    4.                    from tmp in joinTemp.DefaultIfEmpty()  
    5.                    select new {   
    6.                    sname=tmp==null?"":tmp.Name,  
    7.                    bname=book.Name  
    8.                    };  
     
  • 请您注意

    ·自觉遵守:爱国、守法、自律、真实、文明的原则

    ·尊重网上道德,遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他各项有关法律法规

    ·严禁发表危害国家安全,破坏民族团结、国家宗教政策和社会稳定,含侮辱、诽谤、教唆、淫秽等内容的作品

    ·承担一切因您的行为而直接或间接导致的民事或刑事法律责任

    ·您在编程中国社区新闻评论发表的作品,本网站有权在网站内保留、转载、引用或者删除

    ·参与本评论即表明您已经阅读并接受上述条款

  • 感谢本文作者
  • 作者头像
  • 昵称:呼吸的金鱼
  • 加入时间:2014/8/2 11:08:00
  • TA的签名
  • 这家伙很懒,虾米都没写
  • +进入TA的空间
  • 以下内容也很赞哦
分享按钮