以文本方式查看主題 - 曙海教育集團(tuán)論壇 (http://www.hufushizhe.com/bbs/index.asp) -- VB語言 (http://www.hufushizhe.com/bbs/list.asp?boardid=77) ---- 用VB語言,在Web開發(fā)中使用LINQ (http://www.hufushizhe.com/bbs/dispbbs.asp?boardid=77&id=2592) |
-- 作者:wangxinxin -- 發(fā)布時(shí)間:2010-12-14 12:18:08 -- 用VB語言,在Web開發(fā)中使用LINQ 如今的網(wǎng)絡(luò)有很多偉大的創(chuàng)新,能夠很容易利用LINQ的查詢能力,并使之與Web用戶界面的豐富新和靈活性相結(jié)合.的確很容易. 在開始之前你需要弄明白幾個(gè)概念: * LinqDataSource 控件 -- 允許你在基于Web的數(shù)據(jù)綁定中使用LINQ查詢作為數(shù)據(jù)源. * LinqDataSource.Selecting 事件 -- 允許你自定義任意LINQ定義查詢(包括匿名查詢) 為數(shù)據(jù)源. 只要從VB編輯器的下拉列表中選中LinqDataSource并選擇Selecting事件, 然后在事件處理代碼中設(shè)定e.Result = <你的LINQ查詢> 即可. * OR設(shè)計(jì)器和Linq 到SQL -- 如果你正用LINQ查詢直接連接到SQL數(shù)據(jù)庫 (而不是對象集合, xml, 等等) 上, 這是一種創(chuàng)建查詢的簡單方法, 我們稱它為DataContext 對象. “OR”是對象-關(guān)系映射的縮寫, 例如, 從關(guān)系數(shù)據(jù)庫數(shù)據(jù)到.NET對象的映射 * ASP.NET 數(shù)據(jù)綁定表達(dá)式 -- 使你能夠計(jì)算由數(shù)據(jù)源字段, 或簡單控件的屬性, 或控件列表而來的ASP形式的<%# Eval("YOURFIELD") %>表達(dá)式 用LINQ到SQL創(chuàng)建一個(gè)簡單的Web窗體 第一篇文章用一個(gè)最簡單的Web窗體, 來逐一解釋這些概念. 然后我將根據(jù)你們的回復(fù)在以后的文章中添加更多主題并擴(kuò)展這個(gè)示例. 下面是一個(gè)最初我們需要的Web窗體輸出示例 -- 一個(gè)非常簡單的人力資源程序的員工列表單 -- 我得承認(rèn)它缺少修飾, 并需要一些用戶界面上的加工: 如果你對Visual Studio非常熟悉, 我估計(jì)你只要10到15分鐘就能在你自己的機(jī)器上實(shí)現(xiàn). 準(zhǔn)備 - 確保已經(jīng)安裝Visual Studio 2008 或 Visual Web Developer 2008 Express. Express 版本. - 確保安裝了 SQL Server 2005 Express 并已啟動(dòng). 它通常在安裝VS 或VS Express的同時(shí)默認(rèn)被安裝. 你也可以從這里下載安裝. - 如果在你的機(jī)器上沒有Northwind.mdf, 可以從這篇文章的附件中下載. 為網(wǎng)站添加數(shù)據(jù) 首先我們要把數(shù)據(jù)庫添加到我們的工程中, 并創(chuàng)建必要的類以使用LINQ中的數(shù)據(jù)庫 (用Linq到SQL).注意, 你可以選擇跳過此步驟并創(chuàng)建你自己的LINQ查詢到其他數(shù)據(jù)庫上. 通過File -> New Web Site ... -> ASP.NET Web Site創(chuàng)建一個(gè)新的網(wǎng)站到本地目錄 把Northwind數(shù)據(jù)庫添加到網(wǎng)站的App_Data文件夾 1. 從本文附件中下載 Northwind.mdf 文件并保存到本地硬盤上 2. 把這個(gè)文件拖放到解決方案管理器的App_Data文件夾中 通過OR設(shè)計(jì)器為Northwind創(chuàng)建LINQ到 SQL的類. Linq 到 SQL 類會(huì)被保存在一個(gè).dbml 文件中并可以在可視的OR設(shè)計(jì)器中打開. 1. 在解決方案資源管理器中右鍵單擊網(wǎng)站結(jié)點(diǎn), 選擇快捷菜單的Add New Item -> Linq To SQL Classes 2. 把"DataClasses.dbml" 重命名為"NorthwindDataClasses.dbml". (這樣做很重要, 以便在代碼和VS向?qū)е姓业竭@些類). 3. |