<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    qileilove

    blog已經(jīng)轉(zhuǎn)移至github,大家請訪問 http://qaseven.github.io/

    步步學(xué)LINQ to SQL:使用LINQ檢索數(shù)據(jù)

     該系列教程描述了如何采用手動的方式映射你的對象類到數(shù)據(jù)表(而不是使用象SqlMetal這樣的自動化工具)以便能夠支持?jǐn)?shù)據(jù)表之間的M:M關(guān)系和使用實體類的數(shù)據(jù)綁定。即使你選擇使用了自動生成類的工具,理解這一實現(xiàn)過程可以讓你更加方便地對你的應(yīng)用程序加以擴展。

      第一篇:步步學(xué)LINQ to SQL:將類映射到數(shù)據(jù)庫

      一旦你將數(shù)據(jù)庫表映射到對應(yīng)的類對象上并在DataContext中申明了到數(shù)據(jù)庫的映射關(guān)系,你就可以不需要使用一行數(shù)據(jù)庫代碼(SQL語句)訪問數(shù)據(jù)了。

      通過一個簡單的示例BookCatalog(強類型的DataContext)來說明,你可以通過使用在Authors,Books和 Categories中定義的集合從數(shù)據(jù)庫中訪問book,author和category。

      例如,要查找書的類別,你所要做的就是循還bookCatalog.Books對象并且LINQ會自動地查找數(shù)據(jù)庫(通過映射關(guān)系)并填充你使用的集合---使用Book類為要查找的每本書創(chuàng)建一個實例:

    BookCatalog bookCatalog = new BookCatalog( );
    foreach( Book book in bookCatalog.Books){
    string title = book.Title;
    decimal price = book.Price;
    }

      你也可以使用LINQ來過濾這些結(jié)果集,因為大多數(shù)時候,你并不要一次返回所有的書或者基于性能方面的考慮也不會這么做。

      LINQ提供了一套完整的類似于SQL語法的語言,該語言已經(jīng)被集成到了.NET語言(C#,Visual Basic)。對該語法的描述超出了本文的范圍,下面我們一起看兩個例子以了解它們是如何使用的。

      因為BookCatalog返回一個集合對象,我們使用的查詢語法將會查找這些對象(意味著你將直接使用對象名以及它們包涵的字段或?qū)傩远皇菙?shù)據(jù)表的字段)。因此,例如,如果你僅僅想查找價格低于$30的書籍,你可以使用一個LINQ where從句,該從句可以僅僅只從bookCatalog.Books集合對象上查找價格低于$30的書:

    IEnumerable cheapBooks = from book in bookCatalog.Books
    where book.Price.CompareTo( 30m ) < 0
    select book;

      LINQ的延期執(zhí)行意味著對books集合的檢索不會即時從數(shù)據(jù)庫取得直到實際需要時才進行(例如,使用一個foreach循還),因此我們可以保持應(yīng)用的過濾條件,然后限制查詢的數(shù)據(jù)以確保讀取數(shù)據(jù)的效率。

      例如,你以后可以使用LINQ提供的orderby語法來定義上面的結(jié)果集將數(shù)據(jù)按書的標(biāo)題進行排序。

    IEnumerable sortedBooks = from book in cheapBooks
    orderby book.Title
    select book;

      現(xiàn)在,如果你在執(zhí)行了LINQ查詢鏈之后通過sortedBooks執(zhí)行循還,僅僅只會執(zhí)行一次數(shù)據(jù)庫查詢。其結(jié)果仍然會返回價格低于$30并且按照書的標(biāo)題排序的所有書。

    BookCatalog bookCatalog = new BookCatalog( );
    IEnumerable cheapBooks = from book in bookCatalog.Books
    where book.Price.CompareTo( 30m ) < 0
    select book;
    IEnumerable sortedBooks = from book in cheapBooks
    orderby book.Title
    select book;
    foreach( Book book in sortedBooks ) { ... }

      現(xiàn)在我們一起看看如何映射對象之間的關(guān)系以便你能夠操作這些對象(例如book.Author.Name)。

    posted on 2011-11-22 16:37 順其自然EVO 閱讀(256) 評論(0)  編輯  收藏 所屬分類: 數(shù)據(jù)庫

    <2011年11月>
    303112345
    6789101112
    13141516171819
    20212223242526
    27282930123
    45678910

    導(dǎo)航

    統(tǒng)計

    常用鏈接

    留言簿(55)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 日本一区二区三区在线视频观看免费 | 亚洲av无一区二区三区| 亚洲人成在线免费观看| 911精品国产亚洲日本美国韩国 | 亚洲av午夜精品无码专区| 亚洲免费二区三区| 亚洲人成网男女大片在线播放 | 国产精品黄页免费高清在线观看| 免费中文字幕在线| 一级特黄特色的免费大片视频| 亚洲国产日韩成人综合天堂| 一区二区在线视频免费观看| 最新国产AV无码专区亚洲 | 亚洲高清视频一视频二视频三| 三级片免费观看久久| 浮力影院亚洲国产第一页| 两个人www免费高清视频| 亚洲AV日韩AV天堂一区二区三区| 91精品免费不卡在线观看| 亚洲H在线播放在线观看H| 国产一级淫片a免费播放口之| 色妞www精品视频免费看| 久久亚洲国产成人影院网站| a级在线观看免费| 亚洲毛片无码专区亚洲乱| 大陆一级毛片免费视频观看i| 鲁啊鲁在线视频免费播放| 亚洲色欲久久久综合网| 中文字幕免费观看| 国产亚洲一卡2卡3卡4卡新区| 久久精品国产亚洲5555| 24小时日本韩国高清免费| 久久精品国产亚洲av品善| 亚洲天堂在线视频| 免费成人福利视频| 免费无码午夜福利片| 久久久久久亚洲AV无码专区| 免费看国产一级特黄aa大片| 香蕉成人免费看片视频app下载| 久久久久久亚洲精品影院| 亚洲中文久久精品无码|