我有一個WCF Web調用,它返回SQL命令的結果。WCF返回類型
但是,這個SQL命令是動態的,所以我不知道會有多少列和哪些數據類型。
我如何將結果通過WCF傳遞給Silverlight應用程序?
(順便說一下我,然後希望能夠把這個數據到數據網格)
感謝
我有一個WCF Web調用,它返回SQL命令的結果。WCF返回類型
但是,這個SQL命令是動態的,所以我不知道會有多少列和哪些數據類型。
我如何將結果通過WCF傳遞給Silverlight應用程序?
(順便說一下我,然後希望能夠把這個數據到數據網格)
感謝
Name Age Height Income
Adam 50 175 88
Paul 20 166 75
Ranj 19 188 69
Omar 25 200 45
變爲:
Key Attribute Value
Adam Age 50
Adam Height 175
Adam Income 88
Paul Age 20
Paul Height 175
Paul Income 75
等等
基本上你壓扁數據表列的任意數量到數據表僅會3列(或4,如果你想要包含數據類型)。
然後你會怎麼把它放到一個datagrid? – 2010-09-15 10:48:09
您可以嘗試旋轉網格。我相信DevExpress確實是支點。 – 2010-09-16 08:37:48
很醜陋,但你可以在DataSet返回結果,或數據集轉換爲XML字符串(可能用XSLT清理一下)。
然而,WCF的理想之一是強類型接口,包括返回的數據。由於鍵入較弱,客戶需要額外的信息來解釋XML。
這個在商業世界裏一次又一次地出現。
我用過的一個(仇恨復仇)是返回一個DataSet或者列表中的頭部信息在第一行的字符串列表。然後將列名映射到屬性類型。所有這些都涉及大量的代碼和類型轉換。
一個更好的選擇可能是返回列一個固定的最大數量(不是所有的人總是習慣):
那麼,你至少可以跨到客戶端,靜態映射它。如果可能的話,最好避免使用可變佈局SQL結果。
祝你好運!
對我來說,這樣的體系結構是敲擊網絡服務。你想如何使用未知結構和數據類型的數據?
如果您需要返回通用數據,請使用XElement或XmlElement作爲操作的返回類型,並將結果轉換爲XML(手動,序列化,FOR XML select,...)。
使用強類型的東西,比如所謂的POCO(只是普通的對象,映射到數據庫) – Andrey 2010-09-14 15:14:14