RoundTrip原始属性未将原始值返回给服务器

时间:2012-11-13 17:59:25

标签: silverlight wcf-ria-services

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

我想要实现的场景, 我在PersonDTO对象上有一个地址列表,如果我删除或添加新项目到地址列表,我想在服务器上执行一些额外的实现。因此,我正在使用[RoundTripOriginial],正如在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; }
        }
}

在DomainService上

[Update]    
   public void UpdatePersonDTO(PersonDTO person)
    {
      PersonDTO originalPerson =  this.ChangeSet.GetOriginal(person); 
    }

但是,GetOriginal返回'null',

我在这里遗漏了什么。

非常感谢任何建议/帮助。 在此先感谢。

1 个答案:

答案 0 :(得分:0)

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