0

我正在服务器上使用 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; }
        }
}

在域服务上

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

但是,GetOriginal 返回我'null',

我在这里错过了什么吗?

非常感谢任何形式的建议/帮助。提前致谢。

4

1 回答 1

0

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

于 2012-11-14T07:56:48.880 回答