zoukankan      html  css  js  c++  java
  • linq jion

    先看一个最简单的inner join,在读取Student表时inner join Class表取的对应的Class信息:

    static void Main(string[] args)
    {
        using (var writer = new StreamWriter(WatchSqlPath, false, Encoding.UTF8))
        {
            using (DbAppDataContext db = new DbAppDataContext())
            {
                db.Log = writer;
     
                //inner join 
                var query = from s in db.Students
                            join c in db.Classes on s.ClassID equals c.ClassID
                            where c.ClassID == 1
                            select new
                            {
                                ClassID = s.ClassID,
                                ClassName = c.ClassName,
                                Student = new
                                {
                                    Name = s.Name,
                                    ID = s.StudentID
                                }
                            };
     
                foreach (var item in query)
                {
                    Console.WriteLine("{0} {1} {2}", item.ClassID, item.ClassName, item.Student.Name);
                }
            }
        }
     
        Console.ReadLine();
    }

    继续看outer join:

    static void Main(string[] args)
    {
        using (var writer = new StreamWriter(WatchSqlPath, false, Encoding.UTF8))
        {
            using (DbAppDataContext db = new DbAppDataContext())
            {
                db.Log = writer;
     
                //left outer join
                var query = from s in db.Students
                            join c in db.Classes on s.ClassID equals c.ClassID into gc
                            from gci in gc.DefaultIfEmpty()
                            select new
                            {
                                ClassID = s.ClassID,
                                ClassName = gci.ClassName,
                                Student = new
                                {
                                    Name = s.Name,
                                    ID = s.StudentID
                                }
                            };
                foreach (var item in query)
                {
                    Console.WriteLine("{0} {1} {2}", item.ClassID, item.ClassName, item.Student.Name);
                }
            }
        }
     
        Console.ReadLine();
    }
    
    Outer join时必须将join后的表into到一个新的变量gc中,然后要用gc.DefaultIfEmpty()表示外连接。
  • 相关阅读:
    .NET CORE 部署3
    Filezilla
    Java 项目转换为maven项目教程
    Andriod studio 汉化教程
    tarjan好题
    关于二分的边界
    2019-10-11
    诗人小G(1D1D动态规划)
    斜率优化dp(玩具装箱)
    扩展欧几里得定律
  • 原文地址:https://www.cnblogs.com/hbsfgl/p/4936390.html
Copyright © 2011-2022 走看看