加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

LINQ to Entities 常用查询语句

发布时间:2020-12-16 22:29:48 所属栏目:大数据 来源:网络整理
导读:要使用关联实体返回局部或完整的对象图,需要在LINQ 标准查询操作符之前执行Include()操作符,如下列查询所示,它将返回和前面“使用Include()操作符进行预先加载”一节同样的结果: C#3.0 using(NorthwindEntities ocNwind = new NorthwindEntities(" name

要使用关联实体返回局部或完整的对象图,需要在LINQ 标准查询操作符之前执行Include()操作符,如下列查询所示,它将返回和前面“使用Include()操作符进行预先加载”一节同样的结果:

 
 
  1. C#3.0
  2. using(NorthwindEntitiesocNwind=new
  3. NorthwindEntities("name=NorthwindEntities"))
  4. {
  5. List<Order>orderList=null;
  6. ObjectQuery<Order>orders=ocNwind.Orders;
  7. orders.MergeOption=MergeOptions.AppendOnly;
  8. varorderQuery=orders.Include("Order_Details")
  9. .Include("Customer")
  10. .Include("Employee")
  11. .Include("Shipper")
  12. .Where(o=>o.Customer.Country=="Brazil")
  13. .OrderByDescending(o=>o.OrderID)
  14. .Select(o=>o)
  15. .Take(5);
  16. foreach(OrderorderinorderQuery)
  17. {
  18. //Materializetheobject
  19. orderList.Add(order);
  20. }
  21. }
  22. VB9.0
  23. UsingocNwindAsNewNorthwindEntities("name=NorthwindEntities")
  24. DimorderListAsList(OfOrder)=Nothing
  25. DimoqOrdersAsObjectQuery(OfOrder)=ocNwind.Orders
  26. orders.MergeOption=MergeOptions.AppendOnly
  27. DimorderQuery=oqOrders.Include("Order_Details")_
  28. .Include("Customer")_
  29. .Include("Employee")_
  30. .Include("Shipper")_
  31. .Where(Function(o)o.Customer.Country="Brazil")_
  32. .OrderByDescending(Function(o)o.OrderID)_
  33. .Select(Function(o)o)_
  34. .Take(5)
  35. ForEachoqOrderAsOrderInorderQuery
  36. 'Materializetheobject
  37. orderList.Add(oqOrder)
  38. NextoqOrder
  39. EndUsing

LINQ 表达式语法和串联方法调用区别较大。在4 个标准查询操作符执行之后,要将ObjectQuery<Order>改变为IQueryable<Order>类型,需要把Include()操作符和LINQ 表达式相分隔,如下所示:

 
 
  1. C#3.0
  2. ordersorders=orders.Include("Order_Details")
  3. .Include("Customer")
  4. .Include("Employee")
  5. .Include("Shipper");
  6. orderQuery=(fromoinorders
  7. whereo.Customer.Country=="Brazil"
  8. orderbyo.OrderIDdescending
  9. selecto).Take(5);
  10. VB9.0
  11. oqOrdersoqOrders=oqOrders.Include("Order_Details")
  12. .Include("Customer")
  13. .Include("Employee")
  14. .Include("Shipper")
  15. orderQuery=(FromoInoqOrders_
  16. Whereo.Customer.Country="Brazil"_
  17. OrderByo.OrderIDDescending_
  18. Selecto).Take(5)

可选地,可以使用下面这样更为易读的语法:

 
 
  1. C#3.0
  2. orderQuery=(fromoinorders.Include("Order_Details")
  3. .Include("Customer")
  4. .Include("Employee")
  5. .Include("Shipper")
  6. whereo.Customer.Country=="Brazil"
  7. orderbyo.OrderIDdescending
  8. selecto).Take(5);
  9. VB9.0
  10. orderQuery=(FromoInoqOrders.Include("Order_Details"_
  11. .Include("Customer")_
  12. .Include("Employee")_
  13. .Include("Shipper")_
  14. Whereo.Customer.Country="Brazil"_
  15. OrderByo.OrderIDDescending_
  16. selecto).Take(5);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读