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