• LINQ语法类似于SQL的语法


    LINQ语法类似于SQL的语法如下,

    Models.BookStoreEntities 是从添加新建项中的数据--->ADO.NET实体数据模型--->从数据库生成--->使用5.0框架(这个我用的)--->连接库--->模型命名空间(就是Models.表Entitles)
    Entitles规范点就是表名加Entity 比如 StudentEntity

      

     #region LINQ语法可以让我们在项目使用一种类似于SQL的语法
    
                    #region 投影查询,查询全部的书籍
                    using (Models.BookStoreEntities db = new Models.BookStoreEntities())
                    {
                        //基于表达式查询
                        var Books = from b in db.Books
                                    select b;
    
                        //输出查询结果数量
                        Console.WriteLine(Books.Count());
                        //投影查询除了可以用上述基于表达式的方式实现之外,还可以用一种更简洁的函数方式实现
                        var Books1 = db.Books;
                        Console.WriteLine(Books1.Count());
                    }
                    #endregion
    
    
                    #region 条件查询,比如查询书名为JavaScript语言与AJAX应用的书籍编号
                    using (Models.BookStoreEntities db = new Models.BookStoreEntities())
                    {
                        var BookWhere = from b in db.Books
                                        where b.Title == "JavaScript语言与AJAX应用"
                                        select b;
                        foreach (var book in BookWhere)
                            Console.WriteLine(book.BookId);
    
                        //同样的查询用函数方式实现
                        var BookWhere2 = db.Books.Where(x => x.Title == "JavaScript语言与AJAX应用");
                        foreach (var item in BookWhere2)
                            Console.WriteLine(item.BookId);
    
                        //在上述查询中,在函数方式实现的代码中用到了Lambda表达式描述查询条件
                    }
    
    
                    #endregion
    
                    #region 排序和分页查询,比如查询全部订单,并按数量排序并分页
                    using (Models.BookStoreEntities db = new Models.BookStoreEntities()) 
                    {
                        //按数量排序并分页输出订单编号
                        var Order1 = (from o in db.Orders
                                      orderby o.Num
                                      select o
                                        ).Skip(0).Take(10);
                        //输出查询结果的编号
                        foreach(var oder in Order1)
                            Console.WriteLine(oder.BookId);
    
                        //以函数式方式实现查询
                        var Order2 = db.Orders.OrderBy(x => x.Num).Skip(0).Take(10);
                        foreach (var oder2 in Order2)
                            Console.WriteLine(oder2.BookId);
                    }
                    #endregion
    
                    #region  聚合查询,比如查询书籍总数和价格
                    using (Models.BookStoreEntities db = new Models.BookStoreEntities()) 
                    {
                        //书籍总数
                        var num = db.Books.Count();
                        Console.WriteLine(num);
                        var price = db.Books.Min(x => x.Price);
                        Console.WriteLine(price);
                    }
                    #endregion
    
                    #region 连接查询,比如查询书的订单编号
                    using (Models.BookStoreEntities db = new Models.BookStoreEntities())
                    {
                        var Order3 = from o in db.Orders
                                     join b in db.Books
                                     on o.BookId equals b.BookId
                                     select o;
    
                        //join关键字用于连接2个数据表,on和equals关键字用于指定的两个表是通过那个字段连接在一起的
                        foreach (var order3 in Order3)
                            Console.WriteLine(order3);
                    }
                    #endregion
                   
                    #endregion
    生命中最值得欣慰的,莫过于一觉醒来,你还在身旁
  • 相关阅读:
    smarty的学习
    用接口实现封装的一个mysqli工具类
    centos7/8安装java和mysql
    Mysql 8.0 忘记密码报错1045办法,skip-grant-tables不管用
    卸载vivo手机自带的应用程序
    DevOps的学习(一)
    quartzy的spring注入问题
    html加载执行的顺序
    关于时间Date转换成long类型的方法(时间戳的转换)
    系统中出现乱码
  • 原文地址:https://www.cnblogs.com/chaonuanxi/p/10293585.html
Copyright © 2020-2023  润新知