zoukankan      html  css  js  c++  java
  • join Linq

    List<Publisher> Publishers = new List<Publisher>();
                Publisher publish1 = new Publisher();
                publish1.Code = "01";
                publish1.Name = "北京出版社1";
                Publishers.Add(publish1);
    
                Publisher publish2 = new Publisher();
                publish2.Code = "02";
                publish2.Name = "北京出版社2";
                Publishers.Add(publish2);
    
                List<Book> Books = new List<Book>();
                Book boo1 = new Book();
                boo1.Publisher = new Publisher() { Name = "北京出版社1",Code="01" };
                boo1.Title = "书名1";
                boo1.PublisherCode = "01";
                Books.Add(boo1);
    
                Book boo2 = new Book();
                boo2.Publisher = new Publisher() { Name = "北京出版社2",Code="02" };
                boo2.Title = "书名2";
                boo2.PublisherCode = "02";
                Books.Add(boo2);
    
                Book boo3 = new Book();
                boo3.Publisher = new Publisher() { Name = "北京出版社2",Code="02" };
                boo3.PublisherCode = "02";
                boo3.Title = "书名3";
                Books.Add(boo3);
    
    
                //使用组连接
                var GroupQuery = (from publisher in Publishers
                                join book in Books on publisher equals book.Publisher 
                                into publisherBooks
                                select new
                                {
                                    PublisherName = publisher.Name,
                                    Books = publisherBooks
                                }).ToList();
    
                 //使用Group
                var QueryByGroup = (from book in Books
                            group book by book.Publisher 
                            into grouping
                            select new
                            {
                                PublisherName = grouping.Key.Name,
                                Books = grouping.ToList()
                            }).ToList();
    
                var joinQuery = from publisher in Publishers
                                join book in Books
                                    on publisher equals book.Publisher
    
    
                                select new
                                {
                                    PublisherName = publisher.Name,
                                    BookName = book.Title
                                };
                var tem = joinQuery.ToList();
    
                //left join
                var joinQuery2 = (from publisher in Publishers
                                  join book in Books on publisher.Code equals book.PublisherCode 
                                  into publisherBooks
                                  from publisherBook in publisherBooks.DefaultIfEmpty()
                                select new
                                {
                                    PublisherName = publisher.Name,
                                    BookName = (publisherBook == default(Book)) ? "no book" : publisherBook.Title
                                }).ToList();
    
                //cross join
                var crossJoinQuery = (from publisher in Publishers
                                     from book in Books
                                     select new
                                     {
                                         PublisherName = publisher.Name,
                                         BookName = book.Title
                                     }).ToList();
  • 相关阅读:
    负margin实现div的左右排版
    一起来灭掉IE6!
    javac编译多个带package文件
    iis express感觉还不错
    关于sqlite使用entity framework的布署问题
    远程服务器返回了错误 NOTFOUND
    userAgent string detection in javascript
    a crossbroswer solution for parse xml fragment
    event related object in javascript
    several way to implement inheritance in javascript
  • 原文地址:https://www.cnblogs.com/jacketlin/p/6189628.html
Copyright © 2011-2022 走看看