2012-12-21 201 views
0

我有一個web服務返回DataTable,但代替它我想返回一個列表。有沒有辦法直接從SQL返回列表,或者我必須將其作爲DataTable返回,然後將其轉換爲列表?Webservice返回列表

+0

您是否有任何代碼可以顯示您迄今嘗試過的操作? – kolin

+1

@kolin我正處於規劃階段。既然這不是卡在代碼問題中,而是在計劃問題上,那麼我真的沒有嘗試過其他任何事情,然後刻意思考。 – mko

回答

1

你想要做的是將DataTable中的每一行轉換爲一個對象。

這裏是一個很好的博客文章,顯示了這是一個輔助類:Converting Custom Collections To and From DataTable

的想法是,你循環通過所有的行,然後使用反射來創建對象。您可以通過將每個列名稱映射到相應的屬性名稱來完成此操作。

您還可以使用Linq to DataSet對您的DataTable運行Linq查詢。在Linq中,您可以使用Projection將數據轉換爲新類型。

以下是一些示例:Query Expression Syntax Examples: Projection (LINQ to DataSet)

+0

因此,基本上SQL和List之間沒有捷徑,例如使用Linq? – mko

+1

我已經更新了我的答案 –