2010-03-30 15 views
0

在我的Silverlight頁面我通過WCF獲取數據
WCF是返回一個BusinessEntityCollection是行的集合
的Silverlight與WCF(通過集合中獲取數據)

SqlParameter[] sqlParameter = new SqlParameter[]{new SqlParameter("@recordType",recordType)}; 
       MenuEntity menuEntity; 
       MenuEntityCollection menuEntityCollection = new MenuEntityCollection(); 
       using (SqlDataReader sqlDataReader = SqlHelper.ExecuteReader(_ConnectionString,CommandType.StoredProcedure, <br>StoredProcedures.GetMenus, sqlParameter)) 
       { 
        if (sqlDataReader.Read()) 
        { 
         menuEntity = new MenuEntity(); 
         DataAccessHelper.GetEntity(sqlDataReader, menuEntity); 
         menuEntityCollection.Add(menuEntity); 
        } 
       } 
       return menuEntityCollection; 

- >在silverlight頁面當我打電話給WCF那裏我得到一個錯誤
MenuEntity menuList = new MenuEntity();
menuList = e.Result; < -----錯誤行

錯誤:無法隱式轉換類型
「System.Collections.ObjectModel。 的ObservableCollection'到‘FastTrackSLUI.AdminServiceReference.MenuEntity’

回答

0

寫入線的MenuEntityCollection分類 -

[CollectionDataContract] 公共類MenuEntityCollection [CollectionDataContract]之前:BusinessEntityCollectionBase { 公共MenuEntityCollection() { } }

現在它正在工作。

1

它返回一個集合,但你把它當作一個單個實例(menuList的類型爲MenuEntity,而不是一些類型的集合)。 WCF代碼是由「mex」生成的嗎?它應該只是工作...如果這是您的代碼,請嘗試更改menuListObservableCollection<MenuEnity>。請注意,通過「mex」/ soap/etc,您不會獲得對象的真實對象 - 您將獲得輕量級代理。所以你的自定義集合類型可能已經蒸發。

+0

雅我知道這就是爲什麼我說MenuEntityCollection選項不是在我的intellisence。 – nectar 2010-03-30 12:05:26

+0

hi marc感謝您的回覆 現在我收集silverlight頁面 AdminServiceClient proxy = new AdminServiceClient();代理.GetMenusCompleted + = new EventHandler proxy.GetMenusAsync(); MenuEntityCollection menuList = new MenuEntityCollection(); menuList = e.Result; 如何訪問menuList中的記錄? – nectar 2010-03-30 12:15:16