我开发了一个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发布后,历史记录属性现在返回整个服务,但历史记录集合中填充的数据不会出现在客户端。
知道我缺少什么吗?
菲尔
答案 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