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