美文网首页
LINQ 查询(3)

LINQ 查询(3)

作者: Ritchie_Li | 来源:发表于2022-06-24 21:51 被阅读0次

 内连接 Join

分别查询,查询数据再做连接

var racers = from r in Formula1.GetChampions()

                        from y in r.Years

                        select new

                        {

                            Year = y,

                            Name = r.FirstName + " " + r.LastName

                        };

            var teams = from t in Formula1.GetConstructorChampions()

                        from y in t.Years

                        select new

                        {

                            Year = y,

                            Name = t.Name

                        };

            var racersAndTeams = (from r in racers

                                  join t in teams on r.Year equals t.Year

                                  select new

                                  {

                                      r.Year,

                                      Champion = r.Name,

                                      Constructor = t.Name

                                  }).Take(10);

合并在一起,直击内连接

var racersAndTeams = (from r in

                                      from r1 in Formula1.GetChampions()

                                      from yr in r1.Years

                                      select new

                                      {

                                          Year = yr,

                                          Name = r1.FirstName + " " + r1.LastName

                                      }

                                  join t in

                                  from t1 in Formula1.GetConstructorChampions()

                                  from yt in t1.Years

                                  select new

                                  {

                                      Year = yt,

                                      Name = t1.Name

                                  }

                                  on r.Year equals t.Year

                                  orderby t.Year

                                  select new

                                  {

                                      Year = r.Year,

                                      Racer = r.Name,

                                      Team = t.Name

                                  }).Take(10);

使用方法连接

var racers = Formula1.GetChampions()

                .SelectMany(r => r.Years, (r1, year) =>

                new

                {

                    Year = year,

                    Name = $"{r1.FirstName}  {r1.LastName}"

                });

            var teams = Formula1.GetConstructorChampions()

                .SelectMany(t => t.Years, (t, year) =>

                new

                {

                    Year = year,

                    Name = t.Name

                });

            var racersAndTeams = racers.Join(teams,

                r => r.Year,

                t => t.Year,

                (r, t) =>

                new

                {

                    Year = r.Year,

                    Champion = r.Name,

                    Constructor = t.Name

                }).OrderBy(item => item.Year).Take(10);

相关文章

  • LINQ入门

    linq是语言集成查询。 linq to object :面向对象的查询。 linq to xml:针对xml查询...

  • Lession12-LINQ

    LINQ简介 编写一个扩展方法 LINQ查询方法 LINQ查询的延迟加载 Linq标准查询操作符 LinqToXML

  • EF Core 备忘

    模糊查询sql linq 内连接查询sql linq 左连接查询sql linq 左连接查询(连接内带条件)sql...

  • LINQ 查询(3)

    内连接 Join 分别查询,查询数据再做连接 var racers = from r in Formula1.Ge...

  • LINQ

    什么是linq? linq是语言集成查询。 linq主要包含三部分 linq to xml linq to obj...

  • LINQ 简单使用

    语言集成查询 (LINQ) LINQ(Language Integrated Query)语言集成查询是一组用于 ...

  • Linq用法笔记

    一、什么是Linq? LINQ即Language Integrated Query(语言集成查询),LINQ是集成...

  • (转).NET面试题系列[14] - LINQ to SQL与I

    LINQ to Object和LINQ to SQL有何区别? LINQ to SQL可以将查询表达式转换为SQL...

  • linq延迟执行

    linq查询的两种方式 1.Method语法查询:主要利用system linq Enumerable类中定义的扩...

  • ASP.NET LINQ 简介

    目录### 1. 什么是LINQ 2. 扩展方法3. Lambda 表达式4. LINQ查询的两种语法 1. 什么...

网友评论

      本文标题:LINQ 查询(3)

      本文链接:https://www.haomeiwen.com/subject/gfubvrtx.html