вложенные циклы foreach и служба домена RIA WCF - PullRequest
0 голосов
/ 03 апреля 2012

Я пытаюсь загрузить таблицу координат формы из базы данных для построения графиков на карте Silverlight, интересующая меня структура таблицы находится здесь http://dl.dropbox.com/u/10440538/ADO.png.

Используя сервис wcf ria, я могу нормально загрузить данные, но мне нужна помощь с моим кодом, чтобы вытащить данные самого низкого уровня (координаты) и разделить их на коллекции. Конечный результат должен быть таким, чтобы у меня была коллекция LocationCollections, одна LocationCollection для каждого maphape в базе данных.

Это мой обратный вызов loadoperation

    void FarmsLoaded(LoadOperation<Farm> loadOp) {

        LocationCollection lc = new LocationCollection();

        foreach (Farm f in loadOp.Entities) {
            foreach (FarmLocation fl in f.FarmLocations) {
                foreach (MapShape ms in fl.MapShapes) {
                    lc.Clear();
                    foreach (MapPoint mp in ms.MapPoints) {
                        lc.Add(new Location(mp.Latitude, mp.Longitude));
                    }
                    shapeList.Add(lc);   //observablecollection of LocationCollections
                }
            }
        }
    }

shapeList затем привязывается к слою карты. К сожалению, когда я запускаю это, рисуется только последняя карта в БД. Я думаю, что неправильно понимаю, как осуществляется обход вложенности foreach, поэтому я был бы признателен за любые усилия по просвещению по правильному использованию вложенного foreach в этой ситуации или за любые альтернативные предложения, если foreach не подходит (LINQ?)

1 Ответ

0 голосов
/ 03 апреля 2012

Я думаю, что проблема не связана с циклом foreach, а вместо очистки lc.Поскольку вы включаете lc для каждой карты, они, похоже, также удаляются из списка фигур.

...