2012-11-13 60 views
0

我正在使用服務器上的DTO(數據傳輸對象)。RoundTripOriginalAttribute沒有獲取正確的值返回到服務器

我試圖實現的scenerio, 我有我的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返回我 '空',

我失去了一些東西在這裏。

任何形式的建議/幫助非常感謝。 在此先感謝。

回答

0

在WCF Ria Services中,您必須將RoundTripOriginalAttribute放在您的班級成員上,而不是放在班級本身上。它旨在讓您繞過旅程屬性主要用於服務器端的併發檢查。

+0

當我嘗試將屬性放在具有關聯的集合屬性上時。它會引發編譯錯誤「協會成員不能標記爲RoundTripOriginal」。 – crazy9

+1

這是正確的。它意味着用於「原始」屬性。關聯不能是「往返」,而應該將RoundTripOriginalAttribute放在關聯的基本屬性上 – mCasamento

+0

Thanks @mCasamento – crazy9