我在服务器上使用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',
我在这里遗漏了什么。
非常感谢任何建议/帮助。 在此先感谢。
答案 0 :(得分:0)
在WCF Ria Services中,您必须将RoundTripOriginalAttribute
放在您的班级成员上,而不是放在班级本身上。它的目的是让你的往返属性主要用于服务器端的并发检查。