Silverlight RIA分层模型不返回子元素

时间:2011-06-21 09:11:29

标签: .net vb.net silverlight silverlight-4.0 wcf-ria-services

我开发了一个Silverlight RIA解决方案,需要从服务器返回一个层次模型,声明如下。

Imports System.ComponentModel.DataAnnotations
Imports System.Collections.Generic
Imports System.Runtime.Serialization

<DataContract()>
Public Class Concerns

    <Key()>
    <DataMember()>
    Property ID As Integer
    <DataMember()>
    Property ParentID As Integer
    <DataMember()>
    Property IssueID As String
    <DataMember()>
    Property Version As Integer
    <DataMember()>
    Property ShortDescription As String
    <DataMember()>
    Property DetailedDescription As String
    <DataMember()>
    Property OriginatingDepartment As String
    <DataMember()>
    Property OriginatingBusinessUnit As String
    <DataMember()>
    Property BusinessUnitAffected As String
    <DataMember()>
    Property ProjectModel As String
    <DataMember()>
    Property Category As String
    <DataMember()>
    Property Priority As Integer
    <DataMember()>
    Property ApprovalStatus As Integer
    <DataMember()>
    Property ProductLifeCycle As String
    <DataMember()>
    Property ListItemID As Integer
    <DataMember()>
    Property CreateDate As Date
    <DataMember()>
    Property CreateBy As String
    <DataMember()>
    Property EditedDate As Date
    <DataMember()>
    Property EditedBy As String
    <DataMember()>
    <Association("Concerns", "ID", "ParentID")>
    Property History As New List(Of Concerns)

End Class

我遇到的问题是,虽然历史记录属性在作为ReadOnlyObservableCollection返回到Silverlight客户端时填充了服务器端,但历史记录属性不会过来。

我尝试使用<CollectionDataContract()>注释标记类但没有返回。

编辑:在Jehof发布后,历史记录属性现在返回整个服务,但历史记录集合中填充的数据不会出现在客户端。

知道我缺少什么吗?

菲尔

1 个答案:

答案 0 :(得分:2)

您需要定义忧虑与其包含关注点(父子结构)之间的关联。为此,您需要使用AssociationAttribute修饰History属性。此外,您必须将属性ParentId添加到将在Association中使用的Concerns类。

<DataContract()>
Public Class Concerns

  <Key()>
  <DataMember()> _
  Property ID As Integer

  <DataMember()> _
  Property ParentID As Integer

  <DataMember()> _
  <Association("Concerns", "ID", "ParentID")>_
  <Include()> _
  Property History As New List(Of Concerns)

End Class