成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

LINQ匿名類型分析

開發 后端
這里介紹使用LINQ匿名類型來自定義LINQ查詢輸出的基本例子。下面的示例提供了一個更復雜和更實際的場景。

在向大家詳細介紹LINQ匿名類型之前,首先讓大家了解下LINQ查詢輸出的基本例子,然后全面介紹LINQ匿名類型。

本文介紹使用LINQ匿名類型來自定義LINQ查詢輸出的基本例子。下面的示例提供了一個更復雜和更實際的場景。它把我們的城市列表轉換成一個分層的結果集合──我們將使用一個LINQ匿名類型來對結果按國家分組,這個LINQ匿名類型包含了一個國家名稱,一個城 市詳細信息的子集合和在這個國家中所有城市距離的總和,這距離之和將通過第五步中示范過的lambda表達式 來計算:

  1. using System;  
  2. using System.Web.UI;  
  3. using System.Query;  
  4.    
  5. public partial class Step7 : System.Web.UI.Page  
  6. {  
  7. protected void Page_Load(object sender, EventArgs e)  
  8. {  
  9. TravelOrganizer travel = new TravelOrganizer();  
  10.    
  11. GridView1.DataSource = from location in travel.PlacesVisited  
  12. & nbsp; group location by location.Country into loc  
  13. & nbsp; select new {  
  14. & nbsp; & nbsp; Country = loc.Key,  
  15. & nbsp; & nbsp; Cities = loc,  
  16. & nbsp; & nbsp; TotalDistance = loc.Sum(dist => dist.Distance)  
  17. & nbsp; };  
  18.  
  19. GridView1.DataBind();  
  20. }  

我們.aspx頁面中的GridView是這樣定義的:

  1. <%@ Page Language="C#" AutoEventWireup="true" 
    CodeFile="Step7.aspx.cs" Inherits="Step7" %> 
  2.    
  3. <html> 
  4. <body> 
  5. <form id="form1" runat="server"> 
  6. <div> 
  7. <h1>Groupings with Anonymous Classes</h1> 
  8.    
  9. <asp:GridView ID="GridView1" AutoGenerateColumns="false" runat="server"> 
  10. <Columns> 
  11.    
  12. <asp:BoundField HeaderText="Country" DataField="Country" /> 
  13.    
  14. <asp:TemplateField HeaderText="Cities"> 
  15. & nbsp;<ItemTemplate> 
  16. & nbsp;   
  17. & nbsp;<asp:BulletedList ID="BulletedList1" runat="server" 
  18. & nbsp; & nbsp;DataSource='<%#Eval("Cities")%>' DataValueField="City"/> 
  19. & nbsp;   
  20. & nbsp;</ItemTemplate> 
  21. </asp:TemplateField> 
  22.    
  23. <asp:BoundField HeaderText="Total Distance" DataField="TotalDistance" /> 
  24.    
  25. </Columns> 
  26. </asp:GridView> 
  27. </div> 
  28. </form> 
  29. </body> 
  30. </html> 

注意,我在GridView的模版列中添加了一個"Cities"列,并且在其中添加了一個<asp:bulletedlist>控件 (一個新的ASP.NET 2.0自帶控件)來綁定在上面用LINQ查詢所得到的分層結果。

注意,所有上面的綁定語法和層次綁定在現在的ASP.NET 2.0中是完全支持的,所以,你可以在現有的程序中使 用這些技術。新穎(我也認為非常酷)之處,是LINQ匿名類型和LINQ提供的數據構形功能,這個功能使得在ASP.NET 控件里綁定分層數據非常容易。

上面所有的例子操作的都是本地內存中的集合數據。他們展示了你如何在.NET對象模型中使用LINQ,包括那些你 自己創建的類型。

在我將來的有關LINQ的文章中,我將深入討論LINQ,利用新的DLINQ支持使用上面提到的技術來處理關系數據庫 ,和通過新的XLINQ支持來處理XML文件和結構。LINQ項目的好處在于,在所有的應用中,其句法和概念都是一 樣的,這樣,你一旦學會使用LINQ對一個數組或集合做查詢,你也就知道了在處理數據庫甚至XML文件時所需 的所有概念。

例如,假如你使用DLINQ生成了Northwinds數據庫中供應商(Suppliers)和產品( Products)表相對應的.NET類型(注:你不需要編寫任何代碼就可以實現),那么要獲取分層的數據結果,并且將其綁定到GridView上,你只要寫下面這個編碼就可以了(注意:我們使用了跟前面的例子一樣的數據構形技術,只從數據庫中取得兩列數據,并且自動地把每個供應商和其對應的產品組合成一個層次結構的結 果):

  1. using System;  
  2. using System.Query;  
  3.    
  4. public partial class Data_Data2 : System.Web.UI.Page  
  5. {  
  6. protected void Page_Load(object sender, EventArgs e)  
  7. {  
  8. Northwind db = new Northwind();  
  9.    
  10. GridView1.DataSource = from x in db.Suppliers  
  11. & nbsp; where x.Country == "USA"  
  12. & nbsp; orderby x.Country  
  13. & nbsp; select new {  
  14. & nbsp; & nbsp;x.CompanyName,  
  15. & nbsp; & nbsp;x.Country,  
  16. & nbsp; & nbsp;x.Products  
  17. & nbsp;};  
  18.    
  19. GridView1.DataBind();  
  20. }  

不需要額外的SQL語句和代碼──這些就是實現高效獲取和組裝層次數據所需的所有代碼(注意:只取出了需要的 列和行的數據-DLINQ可以使用LINQ的遠程函數支持因而我們沒必要持久化或者取出所有數據庫表或者一行中 的所有列)。而且這些都是類型安全的,同樣具有完全的編譯時檢查,智能感知和調試支 持。

更棒的是,接入一個新的LINQ提供器(DLINQ和XLINQ是兩例)的機制是完全公開的──因此那些已經建立或者使用現 有數據提供程序(例如:O/R數據庫映射)的開發人員可以很容易的無縫地把他們的實現和LINQ整合起來。一 旦你了解了LINQ,你就知道了開發LINQ所需的所有的基本知識。

【編輯推薦】

  1. LINQ to SQL Table淺談
  2. Linq語句問題的解決方法
  3. Ling to sql更新實體概述
  4. Linq實體繼承簡單描述
  5. Linq Library概述
責任編輯:佚名 來源: 博客園
相關推薦

2009-09-10 14:37:57

LINQ匿名類型

2009-09-14 15:50:52

Linq匿名委托類型

2009-09-17 11:35:40

Linq匿名類型

2009-09-11 10:16:07

Linq匿名類型

2009-09-10 13:24:36

Linq參數類型

2009-09-01 10:58:46

C#匿名類型對象

2009-09-07 16:44:28

Linq String

2009-09-09 17:02:05

LINQ Expres

2009-09-09 18:03:47

LINQ to SQL

2009-09-15 10:46:04

LINQ to SQL

2009-09-15 15:09:50

Linq本質

2009-09-14 10:09:26

LINQ查詢結果

2009-09-08 13:16:01

Linq to SQL

2009-08-10 17:25:58

C#匿名類型

2009-09-08 14:56:55

強類型DataContLinq to SQL

2009-09-16 10:48:32

LINQ查詢操作

2009-09-16 15:41:45

LINQ查詢XML文檔

2009-09-17 11:29:50

Linq擴展方法

2009-09-18 16:46:15

LINQ查詢句法

2009-09-16 17:41:56

Linq延時執行
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 免费观看一区二区三区毛片 | 成人av一区二区在线观看 | 成人午夜免费福利视频 | 欧美一区二区三区在线播放 | 91免费看片| 成人在线观 | 中国黄色毛片视频 | 午夜视频一区二区三区 | 亚洲精品久久久一区二区三区 | 久草精品视频 | 精品欧美乱码久久久久久 | 一区二区三区日韩 | 久久99精品久久久97夜夜嗨 | 日韩中文字幕一区 | 蜜臀久久| 天天操 天天操 | 日韩一区二区三区精品 | 国产高清在线 | 亚洲一区二区三区在线视频 | 色必久久 | 日本在线一二 | 亚洲精品久久嫩草网站秘色 | 精品视频国产 | 国产精品一级在线观看 | 国产精品视频一区二区三区四蜜臂 | 成人午夜精品 | 亚洲成人综合在线 | 精品伊人| 伊人啪啪网 | 欧美日韩国产精品激情在线播放 | 国产一区久久精品 | 黄网免费| 国产欧美一区二区久久性色99 | 野狼在线社区2017入口 | 成人av播放 | 亚洲精品在线免费播放 | 日本aa毛片a级毛片免费观看 | 黄色欧美大片 | 国产精品久久久久久久久久不蜜臀 | 日韩在线精品强乱中文字幕 | 天天人人精品 |