亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        LINQ to SQL技術(shù)在Web開(kāi)發(fā)中的應(yīng)用

        2012-01-24 02:32:10舒國(guó)軍黃剛
        關(guān)鍵詞:關(guān)系數(shù)據(jù)庫(kù)開(kāi)發(fā)人員數(shù)據(jù)源

        舒國(guó)軍,黃剛

        (遵義師范學(xué)院計(jì)算機(jī)科學(xué)系,貴州遵義563002)

        1 LINQ查詢技術(shù)

        LINQ[1](Language Integrated Query——語(yǔ)言集成查詢)是微軟推出的新一代查詢技術(shù),使用.NET Framework3.5和Visual Studio 2008開(kāi)發(fā)環(huán)境。LINQ技術(shù)有三大組件LINQ to Object、LINQ to ADO.NET和LINQ to XML分別用來(lái)訪問(wèn)集合對(duì)象,關(guān)系數(shù)據(jù)庫(kù)和XML文檔,其中LINQ to ADO.NET有三種技術(shù),LINQ to DataSet、LINQ to SQL、LINQ to Entities,與.NET語(yǔ)言的關(guān)系和架構(gòu)如圖1所示。

        傳統(tǒng)的ADO.NET訪問(wèn)數(shù)據(jù)庫(kù)的缺陷如下:算法復(fù)雜,需要定義查詢字符串,如果字符串錯(cuò)誤則數(shù)據(jù)訪問(wèn)失??;不能保證綁定的參數(shù)與查詢語(yǔ)句中的一致導(dǎo)致運(yùn)行錯(cuò)誤;訪問(wèn)不同的數(shù)據(jù)庫(kù)要編寫不同的SQL語(yǔ)句,代碼一致性和靈活性差;關(guān)系數(shù)據(jù)庫(kù)采用的數(shù)據(jù)模型與編寫代碼的對(duì)象模型有差異,開(kāi)發(fā)人員需花時(shí)間寫代碼解決“阻抗不匹配”[1]的問(wèn)題。

        LINQ的這幾個(gè)組件可訪問(wèn)不同的數(shù)據(jù)源,且對(duì)不同數(shù)據(jù)源開(kāi)發(fā)時(shí)可用統(tǒng)一的查詢語(yǔ)法,降低了數(shù)據(jù)庫(kù)開(kāi)發(fā)的門檻,提高了開(kāi)發(fā)效率,具有良好的可重用性和擴(kuò)展性。LINQ實(shí)現(xiàn)了Web開(kāi)發(fā)中的三層體系架構(gòu)的擴(kuò)展應(yīng)用,還能實(shí)行異步查詢技術(shù)來(lái)提高應(yīng)用程序的吞吐量,縮短程序響應(yīng)時(shí)間,減少用戶等待時(shí)間。

        2 LINQ to SQL查詢

        在數(shù)據(jù)庫(kù)開(kāi)發(fā)領(lǐng)域,面向?qū)ο蟮某绦虼a與關(guān)系數(shù)據(jù)庫(kù)有差異性,而LINQ to SQL[2]在這兩者間架起了一座橋梁。LINQ to SQL提供了輕量級(jí)的對(duì)象關(guān)系映射框架,將關(guān)系數(shù)據(jù)庫(kù)映射為.NET Framework3.5中的一些類,然后對(duì)數(shù)據(jù)進(jìn)行CRUD操作。LINQ to SQL為數(shù)據(jù)庫(kù)創(chuàng)建對(duì)象模型,其中實(shí)體類的字段映射列,關(guān)系映射主外鍵關(guān)系,方法映射存儲(chǔ)過(guò)程或函數(shù)。LINQ to SQL把以往數(shù)據(jù)庫(kù)應(yīng)用程序中的操作細(xì)節(jié)封裝起來(lái),使開(kāi)發(fā)人員更關(guān)注核心代碼邏輯。LINQ to SQL層和表示界面層結(jié)合,開(kāi)發(fā)效率高,采用三層體系結(jié)構(gòu)[3],如圖2所示。

        2.1 LINQ to SQL實(shí)體類的映射

        LINQ to SQL的實(shí)體類[4]用于表示對(duì)象-關(guān)系映射(ORM)。首先準(zhǔn)備好數(shù)據(jù)庫(kù)對(duì)象,然后建立實(shí)體類。建立方法有很多:手動(dòng)編碼、用XML文件映射、命令行工具SqlMetal生產(chǎn)、LINQ to SQL設(shè)計(jì)器等。其中VS2008提供的O/R對(duì)象關(guān)系設(shè)計(jì)器比較方便使用,有可視化設(shè)計(jì)界面,用于創(chuàng)建映射到數(shù)據(jù)庫(kù)中表的對(duì)象模型,生成強(qiáng)類型DataContext在實(shí)體類和數(shù)據(jù)庫(kù)間發(fā)送接收數(shù)據(jù),對(duì)實(shí)體類間繼承關(guān)系的設(shè)計(jì)[5]。實(shí)體類TabAddress的代碼片段:

        (3)LINQ to SQL[7]中的Attach()和AttachAll()方法用來(lái)在多層結(jié)構(gòu)的程序中更新數(shù)據(jù),將實(shí)體附加到數(shù)據(jù)上下文的數(shù)據(jù)表,而表示界面層用SubmitChanges()方法來(lái)更新數(shù)據(jù)庫(kù)。從數(shù)據(jù)庫(kù)中檢索數(shù)據(jù),由于是采用基于表達(dá)式樹(shù)的查詢機(jī)制,要通過(guò)對(duì)Queryable類的擴(kuò)展方法完成,如用where()方法來(lái)根據(jù)條件篩選并返回?cái)?shù)據(jù),用Last()方法來(lái)返回滿足條件的最后一條記錄等。

        2.3 SQLMetal工具

        SQLMetal是一種VS2008提供的在生成數(shù)據(jù)模型對(duì)象中使用的命令行工具,可以從已經(jīng)存在的數(shù)據(jù)庫(kù)生成類在LINQ程序中使用,通過(guò)這個(gè)工具可以執(zhí)行以下操作:從數(shù)據(jù)庫(kù)生成包含源代碼和映射屬性的文件,生成自定義使用的中間數(shù)據(jù)庫(kù)標(biāo)記語(yǔ)言文件(*.dbml)等等。另外VS2008還有可視化LINQ代碼編輯器和調(diào)試器,為開(kāi)發(fā)人員提供智能代碼提示,支持查詢表達(dá)式。

        2.4 LinqDataSource控件

        在ASP.NET 3.5的VS2008環(huán)境下,在Web應(yīng)用程序中檢索或修改數(shù)據(jù)時(shí),通過(guò)使用LinqData-Source控件[8]來(lái)自動(dòng)創(chuàng)建與數(shù)據(jù)進(jìn)行交互的命令,簡(jiǎn)化網(wǎng)頁(yè)代碼。LinqDataSource控件與數(shù)據(jù)庫(kù)的數(shù)據(jù)交互時(shí),不是直接連接到數(shù)據(jù)庫(kù),而是與表示數(shù)據(jù)庫(kù)和表的實(shí)體類交互,通過(guò)對(duì)象關(guān)系設(shè)計(jì)器或者SQLMetal工具生成實(shí)體類。LinqDataSource控件與Sql-DataSource控件相比有很大的優(yōu)勢(shì),無(wú)需設(shè)置SQL查詢命令對(duì)數(shù)據(jù)的綁定和操作,LinqDataSource控件將使用LINQ to SQL自動(dòng)創(chuàng)建,當(dāng)更新或插入數(shù)據(jù)時(shí),將DataField屬性與實(shí)體類中的屬性名進(jìn)行匹配即可。頁(yè)面通過(guò)數(shù)據(jù)源LinqDataSource控件和顯示數(shù)據(jù)的GridView控件就可以實(shí)現(xiàn)數(shù)據(jù)的操作[9],控件代碼如下:

        3 結(jié)束語(yǔ)

        本文介紹了LINQ查詢技術(shù)中LINQ to SQL架構(gòu)設(shè)計(jì)和數(shù)據(jù)庫(kù)操作,LINQ to SQL除了建立數(shù)據(jù)模型對(duì)數(shù)據(jù)進(jìn)行CRUD操作(插入,刪除,更新)外,還支持存儲(chǔ)過(guò)程、事務(wù)、視圖的操作。在Visual Studio 2008中可以用LinqDataSource控件和GridView控件對(duì)關(guān)系數(shù)據(jù)庫(kù)實(shí)現(xiàn)數(shù)據(jù)操作。作為新一代的數(shù)據(jù)訪問(wèn)技術(shù),LINQ是在很多技術(shù)的基礎(chǔ)上發(fā)展起來(lái)的,如C-Omega語(yǔ)言、ObjectSpace以及XQuery等等,LINQ優(yōu)秀的語(yǔ)法查詢機(jī)制對(duì)開(kāi)發(fā)人員提高項(xiàng)目效率有很大的現(xiàn)實(shí)意義。

        [1] 趙王兵.LINQ數(shù)據(jù)訪問(wèn)技術(shù)的研究及其在電機(jī)設(shè)計(jì)系統(tǒng)中的應(yīng)用[D].廣東:中山大學(xué),2009.

        [2] Paolo Pialorsi,Marco Russo.Programming Microsoft LINQ[M].Redmond:Microsoft Press,2008.467-489.

        [3] 史紅軍.快速開(kāi)發(fā)基于Linq to Sql的三層Web應(yīng)用[J].科技資訊,2009,(24):19-20.

        [4] Ken Getz.The LINQ Enumerable Class,Part2[EB/OL].http://msdn.microsoft.com/en-us/Magazine/cc793963.aspx,2011-06-09.

        [5] Scott Guthrie.Using LINQ-to-SQL(Part 1)[EB/OL].http://weblogs.asp.net/scottgu/archive/2007/05/19/using-linq-to-sqlpart-1.aspx,2011-05-07.

        [6] 趙志剛.ASP.NET中基于LINQ的數(shù)據(jù)訪問(wèn)[J].沈陽(yáng)師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2009,27(2):198-201.

        [7] Anthony Sneed.Flexible Data Access With LINQ To SQL And The Entity Framework[EB/OL].http:/msdn.microsoft.com/enus/magazine/dd263098.aspx,2010-06-11.

        [8] Matthew MacDonald.Beginning ASP.NET 3.5 in C#2008 Fr om Novice to Professional second edtion[M].Redmond:Apress,2008.577-616.

        [9] 王的強(qiáng).LINQ入門及應(yīng)用[M].北京:清華大學(xué)出版社,2009.209-225.

        猜你喜歡
        關(guān)系數(shù)據(jù)庫(kù)開(kāi)發(fā)人員數(shù)據(jù)源
        關(guān)系數(shù)據(jù)庫(kù)在高爐數(shù)據(jù)采集系統(tǒng)中的應(yīng)用
        山東冶金(2022年2期)2022-08-08 01:51:30
        Semtech發(fā)布LoRa Basics 以加速物聯(lián)網(wǎng)應(yīng)用
        Web 大數(shù)據(jù)系統(tǒng)數(shù)據(jù)源選擇*
        基于不同網(wǎng)絡(luò)數(shù)據(jù)源的期刊評(píng)價(jià)研究
        基于真值發(fā)現(xiàn)的沖突數(shù)據(jù)源質(zhì)量評(píng)價(jià)算法
        讓W(xué)indows 10進(jìn)入開(kāi)發(fā)者模式
        電腦迷(2015年12期)2015-04-29 23:22:51
        后悔了?教你隱藏開(kāi)發(fā)人員選項(xiàng)
        基于索引結(jié)構(gòu)的關(guān)系數(shù)據(jù)庫(kù)關(guān)鍵詞檢索
        分布式異構(gòu)數(shù)據(jù)源標(biāo)準(zhǔn)化查詢?cè)O(shè)計(jì)與實(shí)現(xiàn)
        一種基于數(shù)據(jù)圖劃分的關(guān)系數(shù)據(jù)庫(kù)關(guān)鍵詞檢索方法
        人人妻人人妻人人片av| 欧美噜噜久久久xxx| 中文www新版资源在线| 亚洲综合一区二区三区四区五区 | 国产亚洲日本精品无码| 久久精品国产四虎| 成年人视频在线播放视频| 亚洲一区二区三区亚洲| 极品粉嫩小仙女高潮喷水网站 | 日本高清视频永久网站www | 久久久久av综合网成人| 久久精品麻豆日日躁夜夜躁| 欧美亚洲高清日韩成人| 在线观看人成网站深夜免费| 蜜桃一区二区三区视频网址| 国产盗摄xxxx视频xxxx| 98色花堂国产精品首页| 色噜噜精品一区二区三区 | 亚洲成aⅴ人片久青草影院| 中文字幕无码精品亚洲资源网久久 | 无码人妻一区二区三区在线视频| 五码人妻少妇久久五码| 国产成人精品日本亚洲i8| 久久国产亚洲高清观看| 色老头一区二区三区| 一级午夜理论片日本中文在线| 一边摸一边做爽的视频17国产| 亚洲av国产精品色午夜洪2| 精品国产亚欧无码久久久| 中文字幕人妻激情在线视频| 一本久道综合色婷婷五月| 香蕉久久人人97超碰caoproen| 国产成年无码久久久久下载| 白白色发布会在线观看免费| 亚洲精品午夜无码专区| 国产精品视频久久久久| 高清成人在线视频播放| 国产一区二区三区四区三区| 亚洲av色无码乱码在线观看 | 成人影院视频在线播放| av中文字幕一区不卡|