日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
LINQ匿名類(lèi)型分析

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

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名與空間、網(wǎng)站空間、營(yíng)銷(xiāo)軟件、網(wǎng)站建設(shè)、揭東網(wǎng)站維護(hù)、網(wǎng)站推廣。

本文介紹使用LINQ匿名類(lèi)型來(lái)自定義LINQ查詢輸出的基本例子。下面的示例提供了一個(gè)更復(fù)雜和更實(shí)際的場(chǎng)景。它把我們的城市列表轉(zhuǎn)換成一個(gè)分層的結(jié)果集合──我們將使用一個(gè)LINQ匿名類(lèi)型來(lái)對(duì)結(jié)果按國(guó)家分組,這個(gè)LINQ匿名類(lèi)型包含了一個(gè)國(guó)家名稱,一個(gè)城 市詳細(xì)信息的子集合和在這個(gè)國(guó)家中所有城市距離的總和,這距離之和將通過(guò)第五步中示范過(guò)的lambda表達(dá)式 來(lái)計(jì)算:

 
 
 
  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. GridView1.DataBind();
  19. }
  20. }

我們.aspx頁(yè)面中的GridView是這樣定義的:

 
 
 
  1. <%@ Page Language="C#" AutoEventWireup="true" 
    CodeFile="Step7.aspx.cs" Inherits="Step7" %>
  2.  
  3.  id="form1" runat="server">
  4. Groupings with Anonymous Classes

  5.  
  6.  ID="GridView1" AutoGenerateColumns="false" runat="server">
  7.  
  8.  HeaderText="Country" DataField="Country" />
  9.  
  10.  HeaderText="Cities">
  11. & nbsp;
  12. & nbsp; 
  13. & nbsp; ID="BulletedList1" runat="server"
  14. & nbsp; & nbsp;DataSource='<%#Eval("Cities")%>' DataValueField="City"/>
  15. & nbsp; 
  16. & nbsp;
  17.  
  18.  HeaderText="Total Distance" DataField="TotalDistance" />
  19.  
  • 注意,我在GridView的模版列中添加了一個(gè)"Cities"列,并且在其中添加了一個(gè)控件 (一個(gè)新的ASP.NET 2.0自帶控件)來(lái)綁定在上面用LINQ查詢所得到的分層結(jié)果。

    注意,所有上面的綁定語(yǔ)法和層次綁定在現(xiàn)在的ASP.NET 2.0中是完全支持的,所以,你可以在現(xiàn)有的程序中使 用這些技術(shù)。新穎(我也認(rèn)為非??幔┲帲荓INQ匿名類(lèi)型和LINQ提供的數(shù)據(jù)構(gòu)形功能,這個(gè)功能使得在ASP.NET 控件里綁定分層數(shù)據(jù)非常容易。

    上面所有的例子操作的都是本地內(nèi)存中的集合數(shù)據(jù)。他們展示了你如何在.NET對(duì)象模型中使用LINQ,包括那些你 自己創(chuàng)建的類(lèi)型。

    在我將來(lái)的有關(guān)LINQ的文章中,我將深入討論LINQ,利用新的DLINQ支持使用上面提到的技術(shù)來(lái)處理關(guān)系數(shù)據(jù)庫(kù) ,和通過(guò)新的XLINQ支持來(lái)處理XML文件和結(jié)構(gòu)。LINQ項(xiàng)目的好處在于,在所有的應(yīng)用中,其句法和概念都是一 樣的,這樣,你一旦學(xué)會(huì)使用LINQ對(duì)一個(gè)數(shù)組或集合做查詢,你也就知道了在處理數(shù)據(jù)庫(kù)甚至XML文件時(shí)所需 的所有概念。

    例如,假如你使用DLINQ生成了Northwinds數(shù)據(jù)庫(kù)中供應(yīng)商(Suppliers)和產(chǎn)品( Products)表相對(duì)應(yīng)的.NET類(lèi)型(注:你不需要編寫(xiě)任何代碼就可以實(shí)現(xiàn)),那么要獲取分層的數(shù)據(jù)結(jié)果,并且將其綁定到GridView上,你只要寫(xiě)下面這個(gè)編碼就可以了(注意:我們使用了跟前面的例子一樣的數(shù)據(jù)構(gòu)形技術(shù),只從數(shù)據(jù)庫(kù)中取得兩列數(shù)據(jù),并且自動(dòng)地把每個(gè)供應(yīng)商和其對(duì)應(yīng)的產(chǎn)品組合成一個(gè)層次結(jié)構(gòu)的結(jié) 果):

     
     
     
    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. }
    21. }

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

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


    文章名稱:LINQ匿名類(lèi)型分析
    URL地址:http://www.5511xx.com/article/cdcgchh.html