数据库LINQ TO SQL在Silverlight中的应用(WCF)------学习笔记(一)
步驟:
1. 創(chuàng)建SILVERLIGHT應(yīng)用程序
2. 創(chuàng)建LINQ TO SQL [注意序列化的問題]
3. 創(chuàng)建WCF
4. 在SILVERLIGHT中應(yīng)用WCF
1. 創(chuàng)建SILVERLIGHT應(yīng)用程序
我用的是Visual Studio 2008 professional和Expression Blend,我通常喜歡用Visual Studio來創(chuàng)建Silverlight工程.
記得一定要選擇上面那個(gè), 因?yàn)橹笠覥#項(xiàng)目中添加WCF
點(diǎn)“確定”后,我們會(huì)看到在我們新建的解決方案中有2個(gè)項(xiàng)目. 之后要做的就是在圖片中已選的項(xiàng)目?jī)?nèi)添加LINQ TO SQL和WCF。
2. 創(chuàng)建LINQ TO SQL [注意序列化的問題]
完成好第一步后,就可以在C#項(xiàng)目里添加LINQ TO SQL了. 當(dāng)然, 首先我們已經(jīng)在SQL SERVER里添加好了一個(gè)表,叫TEACHER好了,用來存放老師的一些信息, 內(nèi)有列: TeacherID, Name, Desciption, ImageUrl.
OK,添加一個(gè)LINQ TO SQL。
添加好LINQ TO SQL后,我們從"服務(wù)器資源管理器"里把TEACHER表拖到LINQ TO SQL里. 這時(shí),一定要注意一個(gè)地方, 如果我們要在之后的SILVERLIGHT項(xiàng)目里用到自定義的LINQ TO SQL類(比如List<Teacher>, List<Custom>等), 需要修改屬性"序列化模式"為"單向"
?
3.創(chuàng)建WCF服務(wù)
為SILVERLIGHT添加WCF服務(wù),如果您安裝了VISUAL STUDIO 2008 SP1和SILVERLIGHT TOOLS,就可以直接在“添加新建項(xiàng)”里找到"啟用Silverlight功能的WCF服務(wù)", 還有,一定得在“C#項(xiàng)目”里添加, 在SILVERLIGHT項(xiàng)目里添加是找不到WCF服務(wù)的.
當(dāng)然,您也可以直接添加WCF 服務(wù), 不過添加后需要修改一些配置才能支持Silverlight.比較麻煩.
添加好WCF服務(wù)后,我們就可以開始在開始寫代碼了, 進(jìn)入WCFTeacher.svc
如果您使用的是"啟用Silverlight功能的WCF服務(wù)", 并沒有實(shí)現(xiàn)接口,所以我們沒有看到IWCFTeacher.cs, 而是直接在WCFTeacher.svc.cs文件中編寫上面的代碼. 上面的代碼中只實(shí)現(xiàn)了1個(gè)功能,就是從TEACHER表中返回指定TEACHERID的所有列。如果您要添加其他方法,需要在每個(gè)方法前加入[OperationContract].
另外,[AspNetCompatibilityRequirements(RequirementsMode?=?AspNetCompatibilityRequirementsMode.Allowed)]這句的意思是添加ASP.NET與WCF的兼容.
還要需要解釋的是這里我們用到了返回值List<Teacher>, Teacher是我們的自定義的類,所以前面的LINQ TO SQL的屬性里我們一定要改序列化模式,要不然在SILVERLIGHT遠(yuǎn)程調(diào)試時(shí)WCF服務(wù)會(huì)出錯(cuò)
4. 在SILVERLIGHT中應(yīng)用WCF
搞定完上面的步驟后,我們就可以跑到SILVERLIGHT項(xiàng)目中“添加服務(wù)引用”了
在添加窗口需要注意的是如果你是用VS2008進(jìn)行調(diào)試的話,一定要將LOCALHOST的端口固定,比如固定成“63031”,如果您是自己用IIS建的網(wǎng)站里調(diào)試,就不需要注意這些了, WCF需要在一個(gè)固定的區(qū)域里才能有效,比如"http://localhost:63031/WCFTeacher.svc"或"http://192.168.1.21/WCFTeacher.svc".
你也可以點(diǎn)“發(fā)現(xiàn)”,VS將自動(dòng)找到解決方案里的WCF服務(wù)。
另外,你也可以把命名空間改成自己想要的名字, 為了以后在SILVERLIGHT應(yīng)用找更加容易識(shí)別.
添加完“服務(wù)引用”后,你就可以在SILVERLIGHT代碼中應(yīng)用我們剛在WCF服務(wù)代碼中寫的方法了.
但是因?yàn)槲覀僕CF代碼中使用到了LIST,所以我們需要在SERVICE REFERENCE目錄下的你剛剛創(chuàng)建的WCF服務(wù)引用中點(diǎn)右鍵,配置服務(wù)引用。將集合類列改成"System.Collections.Generic.List"
如果你修改了C#項(xiàng)目中WCF服務(wù),需要生成解決方案,然后SERVICE REFERENCE目錄下點(diǎn)右鍵,更新服務(wù)引用
在SILVERLIGHT中應(yīng)用我們?cè)赪CF中寫的方法,具體代碼如下:
1.首先我們要在使用的類中聲明:
2. 然后添加完成事件,并執(zhí)行異步
3. 在client_GetTeacherCompleted方法中處理我們得到的數(shù)據(jù)
OK,這樣我們就可以在SILVERLIGHT中訪問SQL了,這里需要注意的一個(gè)地方是ServiceReferences.ClientConfig這個(gè)文件
如果你要上傳至服務(wù)器了,一定要改成服務(wù)器地址,要不然會(huì)出錯(cuò)的.
posted on 2010-09-07 09:58 李明楊 閱讀(...) 評(píng)論(...) 編輯 收藏轉(zhuǎn)載于:https://www.cnblogs.com/lmyhao/archive/2010/09/07/1820312.html
總結(jié)
以上是生活随笔為你收集整理的数据库LINQ TO SQL在Silverlight中的应用(WCF)------学习笔记(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 硬盘怎么显示为u盘启动项 硬盘变U盘?教
- 下一篇: SQL Server 的分散式資料複寫技