2010-03-30 3 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

записи линии [CollectionDataContract] до MenuEntityCollection Class--

[CollectionDataContract] общественного класса MenuEntityCollection: BusinessEntityCollectionBase { общественного MenuEntityCollection() { }}

теперь работает.

1

Он возвращает коллекцию, но вы лечите его как один экземпляр (menuList набирается в MenuEntity, а не какой-то коллекции). Является ли код WCF генерируемым из «mex»? Он должен просто работать ... Если это ваш код, попробуйте изменить menuList на ObservableCollection<MenuEnity>. Обратите внимание, что над «mex»/soap/etc вы не получаете реальных объектов назад - вы получаете облегченные прокси. Таким образом, ваши пользовательские типы коллекций могут испариться.

+0

ya Я знаю, поэтому я говорю, что опция MenuEntityCollection не входит в мой интеллект. – nectar

+0

hi marc спасибо за ответ ур сейчас у меня есть на странице silverlight также AdminServiceClient proxy = new AdminServiceClient(); proxy.GetMenusCompleted + = новый EventHandler (proxy_GetMenusCompleted); proxy.GetMenusAsync(); MenuEntityCollection menuList = new MenuEntityCollection(); menuList = e.Result; Как я могу получить доступ к записям в menuList? – nectar

Смежные вопросы