自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Linq調(diào)用LoadProducts方法

開發(fā) 后端
這里介紹Linq調(diào)用LoadProducts方法,包括介紹LoadWith方法和Associate With方法,使用Associate With方法來限制訂單詳細(xì)信息的排序規(guī)則。

學(xué)習(xí)Linq時(shí),經(jīng)常會(huì)遇到Linq調(diào)用LoadProducts方法問題,這里將介紹Linq調(diào)用LoadProducts方法問題的解決方法。

LoadWith方法和Associate With方法

這個(gè)例子說明:使用LoadWith方法來確保在檢索客戶信息的同時(shí)檢索訂單信息,在檢索訂單信息的同時(shí)檢索訂單詳細(xì)信息, 僅僅訪問一次數(shù)據(jù)庫(kù)。即可以在一個(gè)查詢中檢索許多對(duì)象。使用Associate With方法來限制訂單詳細(xì)信息的排序規(guī)則。

  1. NorthwindDataContext db2 = new NorthwindDataContext();  
  2. DataLoadOptions ds = new DataLoadOptions();  
  3. ds.LoadWith<Customer>(p => p.Orders);  
  4. ds.LoadWith<Order>(p => p.OrderDetails);  
  5. ds.AssociateWith<Order>(  
  6. p => p.OrderDetails.OrderBy(o => o.Quantity));  
  7. db2.LoadOptions = ds;  
  8. var custs = (  
  9. from c in db2.Customers  
  10. where c.City == "London"  
  11. select c);  
  12. foreach (var cust in custs)  
  13. {  
  14. foreach (var ord in cust.Orders)  
  15. {  
  16. foreach (var orderDetail in ord.OrderDetails)  
  17. {  
  18. //查詢cust.CustomerID, ord.OrderID  
  19. //orderDetail.ProductID, orderDetail.Quantity  
  20. }  
  21. }  

語句描述:在原始查詢過程中使用 LoadWith 請(qǐng)求相關(guān)數(shù)據(jù),以便稍后在檢索到的各個(gè)對(duì)象中導(dǎo)航時(shí)此示例還說明在急切加載關(guān)系對(duì)象時(shí)可以使用 Assoicate With 對(duì)它們進(jìn)行排序。

Linq調(diào)用LoadProducts方法

這個(gè)例子在Category類里提供了一個(gè)LoadProducts分部方法。當(dāng)產(chǎn)品的類別被加載的時(shí)候,就直接優(yōu)先Linq調(diào)用LoadProducts方法來查詢沒有貨源的產(chǎn)品。

  1. private IEnumerable<Product> LoadProducts(Category category)  
  2. {  
  3. //在執(zhí)行LINQ to SQL的時(shí)候,這個(gè)LoadProducts分部方法  
  4. //優(yōu)先加載執(zhí)行,這里用存儲(chǔ)過程也可以.   
  5. return this.Products  
  6. .Where(p => p.CategoryID == category.CategoryID)  
  7. .Where(p => !p.Discontinued);  

執(zhí)行下面的查詢時(shí),利用上面方法返回的數(shù)據(jù)進(jìn)行下面的操作:

  1. NorthwindDataContext db2 = new NorthwindDataContext();  
  2. DataLoadOptions ds = new DataLoadOptions();  
  3. ds.LoadWith<Category>(p => p.Products);  
  4. db2.LoadOptions = ds;  
  5. var q = (  
  6. from c in db2.Categories  
  7. where c.CategoryID < 3 
  8. select c);  
  9. foreach (var cat in q)  
  10. {  
  11. foreach (var prod in cat.Products)  
  12. {  
  13. //查詢cat.CategoryID, prod.ProductID  
  14. }  

語句描述:重寫 Category 類中的分部方法LoadProducts。加載某種類別的產(chǎn)品時(shí),Linq調(diào)用LoadProducts方法以加載此類別中未停產(chǎn)的產(chǎn)品。

【編輯推薦】

  1. LINQ to DataSet查詢?cè)斀?/FONT>
  2. Linq實(shí)現(xiàn)XML轉(zhuǎn)換淺談
  3. Linq to SQL強(qiáng)類型DataContext
  4. Linq SelectMany學(xué)習(xí)經(jīng)驗(yàn)
  5. 使用LINQ進(jìn)行數(shù)據(jù)轉(zhuǎn)換剖析
責(zé)任編輯:佚名 來源: IT168
相關(guān)推薦

2009-09-09 13:18:26

Linq Submit

2009-09-17 11:32:52

LINQ調(diào)用存儲(chǔ)過程

2009-09-15 11:08:01

LinQ調(diào)用存儲(chǔ)過程

2009-09-09 16:45:29

Linq調(diào)用數(shù)據(jù)訪問服

2009-09-14 16:41:23

LINQ To XML

2009-09-11 10:20:36

Linq擴(kuò)展方法

2009-05-11 10:40:36

.NETLINQforeach

2009-09-15 16:44:44

Linq排序

2009-09-17 11:29:50

Linq擴(kuò)展方法

2009-09-10 16:32:19

LINQ Where

2009-09-08 15:39:13

Linq使用Inser

2010-06-03 08:55:43

LINQ

2009-09-17 08:47:00

Linq插入數(shù)據(jù)

2009-09-10 09:35:25

Linq語句

2009-09-13 21:52:16

LINQ字符串

2009-09-17 08:47:00

Linq查詢

2009-12-23 09:04:41

LINQ通用分頁(yè)

2012-09-18 09:39:57

Linq項(xiàng)目高效

2009-08-27 13:10:54

LINQ from子句

2009-09-11 15:12:26

LINQ執(zhí)行存儲(chǔ)過程
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)