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