2010-03-04 80 views
0

我在它返回一個DataView我的web服務有一個方法,在WCF服務

我已經設置進行對話的這個服務,但代理返回一個數據視圖,當我做出這個方法在代理

public DataView GetSales(DateTime SalesDate) 
{ 
    ServiceClient client = new ServiceClient(); 
    return client.GetSalesForDay(SalesDate);    
} 

我得到錯誤「無法隱式轉換類型‘對象[]’到‘System.Data.DataView’,我已經試着用搜索引擎這一點,但沒有得到任何地方,任何幫助,將不勝感激。

感謝

回答

2

你不能這樣做 - 你不能也不應該從WCF服務曾經返回像DataView那樣的東西。一個WCF服務只會返回數據 - 不是具有行爲的對象(DataView包含很多行爲 - 排序,過濾等)。

相反,你的服務代碼,這樣做:

  • 查詢與SqlDataReader的數據庫
  • 解析出相關信息,你真的需要到DTO的(只有那些你真正感興趣的領域) (數據傳輸對象) - 基本保持那件事對你很重要
  • 返回從WCF服務

我列表中的「買賣」的性質只是普通的對象除了自己執行步驟1和2,您還可以使用Linq-to-SQL,NHibernate或任何其他有能力的ORM來處理從數據庫中的行/列轉換爲對象的轉換。