nectar
nectar

Reputation: 9679

silverlight with WCF(get data through collections)

in my silverlight page I am fetching the data through WCF
WCF is returning an BusinessEntityCollection that is the collection of rows

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;

--> in silverlight page when I am calling WCF there I am getting an error
MenuEntity menuList = new MenuEntity();
menuList = e.Result; <-----error line

error: Cannot implicitly convert type
'System.Collections.ObjectModel.ObservableCollection' to 'FastTrackSLUI.AdminServiceReference.MenuEntity'

Upvotes: 0

Views: 484

Answers (2)

nectar
nectar

Reputation: 9679

write line [CollectionDataContract] before the MenuEntityCollection Class--

[CollectionDataContract] public class MenuEntityCollection : BusinessEntityCollectionBase { public MenuEntityCollection() { } }

now it is working.

Upvotes: 0

Marc Gravell
Marc Gravell

Reputation: 1062510

It is returning a collection, but you are treating it as a single instance (menuList is typed as MenuEntity, not some kind of collection). Is the WCF code generated from the "mex"? It should just work... If that is your code, try changing menuList to ObservableCollection<MenuEnity>. Note that over "mex" / soap / etc you don't get the real objects back - you get lightweight proxies. So your custom collection types may have evaporated.

Upvotes: 1

Related Questions