WCF 附錄 高階主題 在WCF中使用LINQ

2021-09-06 03:37:49 字數 1061 閱讀 1916

語言整合查詢(linq)是.net framework 3.5 中的新技術,允許使用c#或者visual studio.net 來查詢資料。傳統意義上來說,資料通過在乙個應用程式中使用乙個字串表示式查詢,比如sql 或者xpath查詢表示式,沒有編譯時的檢查或者智慧型感知支援。linq通過讓一條查詢成為乙個一流語言結構來使用這些能力。linq支援多種資料來源包括sql server資料庫,xml文件,ado.net datasets以及.net物件。linq提供乙個單一的架構在這些不同的資料來源之間查詢資料。使用linq可以幫助建立資料世界與物件世界的橋梁。

暴露linq-to-sql 實體

linq-to-sql引用linq中的特性來講儲存在sql server 中的相關資料暴露為物件。這為儲存在乙個資料庫表中的資料與儲存在乙個應用程式中的物件建立了很好的對映關係。這通常稱為物件引用對映(orm). 為了幫助實現這個對映過程,visual studio 2008 提供了物件關聯設計器。這提供了乙個建立linq-to-sql實體的虛擬設計器。a.3 顯示了linq-to-sql實體的物件相關設計器。

需要知道的一件事是設計器預設不適用datacontractserializer來暴露linq-to-sql實體。這意味著linq-to-sql實體不能通過wcf服務暴露出來。使用乙個服務暴露儲存在乙個資料庫中的實體的能力對開發面向服務的應用來說非常重要。幸運的是,微軟提供了乙個稱為serialization模式的屬性,它存在於linq-to-sql設計器表面。設定這個屬性為unidirectinal允許linq-to-sql實體使用[datacontract]和[datamember]屬性來標記。這將linq-to-sql實體以乙個資料契約的形式暴露給wcf,也意味著可以被wcf序列化。這個設定也可以使用sqlmetal.exe命令列例項來配置。這個例項可以用來為linq-to-sql實體從乙個sql server 資料庫生成**。在命令列傳遞/serialization:unidirectinal引數會指導sqlmetal.exe 生成可以被wcf序列化的型別。

WCF 高階編輯

最近在學習wcf,偶得一好書 wcf高階程式設計 wcf高階程式設計 專門針對中級.net開發人員和解決方案架構師,對用wcf 4 建立面向服務的應用程式 實現可靠的通訊 宿主業務流程 在雲計算中實現安全及可擴充套件的整合應用比較實用。wcf高階程式設計 中主要內容有 在乙個可靠 正確的架構中設計服...

WCF 中使用列舉型別

由於需要,在使用wcf技術中要用到列舉型別,於是乎,直接拿來用。如下所見 datacontract public enum filetype datacontract public class programfilerequest set 檔案型別 datamember public filetyp...

在WCF中使用websocket

今天在網上閒逛的時候,發現wcf4.5中新增了乙個nethttpbinding協議,它是支援websocket的。在網上找了一下教程,附上codeproject上的兩篇文章 其中第一篇文章是使用soap協議來封裝訊息的,實現了乙個基於websocket的雙工通訊程式。第二篇文章則是直接使用文本來通訊...