Silverlight RoundTripOriginalAttribute未将原始值返回到服务器

Silverlight RoundTripOriginalAttribute未将原始值返回到服务器,silverlight,wcf-ria-services,Silverlight,Wcf Ria Services,我正在服务器上使用DTO(数据传输对象) 我正在努力实现的情景, 我在PersonDTO对象上有一个地址列表,如果我删除或向地址列表中添加新项目,我希望在服务器上执行一些额外的实现。为此,我使用了[RoundTripOriginal],它在MSDN中说,它将把一个原始对象连同更新的对象一起返回给服务器 注意:我不想通过数据库调用来获取原始实体 这是我的示例结构 [RoundtripOriginal] Public Class PersonDTO { [Include]

我正在服务器上使用DTO(数据传输对象)

我正在努力实现的情景, 我在PersonDTO对象上有一个地址列表,如果我删除或向地址列表中添加新项目,我希望在服务器上执行一些额外的实现。为此,我使用了[RoundTripOriginal],它在MSDN中说,它将把一个原始对象连同更新的对象一起返回给服务器

注意:我不想通过数据库调用来获取原始实体

这是我的示例结构

[RoundtripOriginal]
Public Class PersonDTO
{

        [Include]
        [Composition]
        [Association("PersonDTO_AddressDTO", "Id", "ReferenceId")]
        public List<Address> Addresses
        { get
            {
                if (addressed== null)
                    addressed= new List<Address>();
                return addressed;
            }
            set { addressed= value; }
        }
}
但是,GetOriginal返回“null”

我是不是遗漏了什么

非常感谢您的任何建议/帮助。
提前感谢。

在WCF Ria服务中,您必须将
RoundTripOriginalAttribute
放在您的类成员上,而不是类本身上。它的目的是让您的往返属性主要用于服务器端的并发检查。

当我尝试将该属性放在具有关联的集合属性上时。它抛出一个编译错误“关联成员不能被标记为RoundTripOriginal”。这是正确的。这意味着要在“原语”属性上使用。关联不能是“往返的”,而是应该将RoundTripOriginalAttribute放在关联的基本属性上
[Update]    
   public void UpdatePersonDTO(PersonDTO person)
    {
      PersonDTO originalPerson =  this.ChangeSet.GetOriginal(person); 
    }