DomainService Include()方法不将子项返回给Silverlight客户端

时间:2011-03-29 17:30:48

标签: silverlight .net-3.5 service dns

这让我很生气,我有一个DomainService调用,它在服务器上包含一个Include()来返回子对象,如下所示:

public IQueryable<RegionBorder> GetRegionBordersWithPolygonsAndLatLongs()
    {
        return this.ObjectContext.RegionBorders.Include("RegionPolygons.LatLongs");
    }

我已将此行设置为服务器上的调试点,并且它正在生成正确的结果,子集合包含在顶层实体中。但是,在客户端,我无法访问孩子。客户端代码如下:

EntityQuery<RegionBorder> query = idc.GetRegionBordersWithPolygonsAndLatLongsQuery();
        LoadOperation<RegionBorder> lo = idc.Load<RegionBorder>(query);
        lo.Completed += delegate(object sender, EventArgs e1)
        {
            //regionBorders = idc.RegionBorders;
            string prtyName = "ProjOverspend";
            var elements = new Collection<FrameworkElement>();
            var propertySet = new ExtendedPropertySet();
            propertySet.RegisterProperty(prtyName, prtyName, typeof(double), 0d);

            foreach (RegionBorder ent in idc.RegionBorders)
            {
                foreach (RegionPolygon rp in ent.RegionPolygons)
                {
                    Telerik.Windows.Controls.Map.MapPolygon mp = new Telerik.Windows.Controls.Map.MapPolygon();
                    mp.Points = rp.Points;
                    elements.Add(mp);
                    SetExtendedProperty(propertySet, prtyName, mp, 0d);
                }
            }

任何人都可以帮助我解决我出错的地方,因为我确信之前工作正常,现在却不会做任何事情。

感谢您的帮助。

马丁。

2 个答案:

答案 0 :(得分:1)

您还必须在元数据中添加IncludeAttribute。

答案 1 :(得分:0)

有没有办法在VS2010中生成域服务对话框,生成元数据,自动添加[Include]和[Association(“[String name]”,“[String thisKey]”,“[String otherKey] “)]标签?

如果您出于某种原因需要重新生成域服务,那么维护和测试是非常有意义的。在实体模型中实现了许多/主要的变化。

当模型由于其关系(外键)已经包含此信息时,添加[Association(“”,“”,“”)]标签是否很自然?