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()表示外连接。
  • 相关阅读:
    华为软件开发云评测
    个人技术博客(α)
    结对第二次作业
    结对第一次作业----部门通
    数独设计
    2017软件工程实践第一次作业
    Alpha冲刺博客集
    个人作业——软件工程实践总结作业
    用户使用调查报告
    总结随笔(Beta)
  • 原文地址:https://www.cnblogs.com/hbsfgl/p/4936390.html
Copyright © 2011-2022 走看看