Я пытаюсь загрузить таблицу координат формы из базы данных для построения графиков на карте 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?)