嵌套foreach循环和WCF RIA域服务

本文关键字:RIA 服务 WCF foreach 循环 嵌套 | 更新日期: 2023-09-27 18:29:57

我正试图从数据库中加载一个形状坐标表,用于在silverlight bing地图上绘制。我感兴趣的表结构在这里http://dl.dropbox.com/u/10440538/ADO.png.

使用wcf-ria服务,我可以加载数据,但我需要代码帮助来提取最低级别的数据(坐标)并将它们分离到集合中。最终结果应该是,我有一个LocationCollections的集合,数据库中每个映射形状都有一个Location collection。

这是我的装载操作回调

    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然后绑定到一个贴图层。不幸的是,当我运行这个时,只绘制了数据库中的最后一个mapshape。我想我误解了foreach嵌套是如何遍历的,所以我很感激在这种情况下正确使用嵌套foreach的任何启发,或者如果foreach不合适(LINQ?)

嵌套foreach循环和WCF RIA域服务

我认为问题与foreach循环无关,而是与清除lc有关。由于您正在为每个mapshape清除lc,因此它们似乎也已从shapelist中删除。