2012-11-13 4 views
0

서버의 DTO (데이터 전송 개체)로 작업하고 있습니다.RoundTripOriginalAttribute가 서버에 원래 값을 반환하지 않음

내가 달성하려고하는 scenerio는 내 PersonDTO 개체에 Addresses 목록이 있으며 주소 목록에 새 항목을 삭제하거나 추가하면 서버에서 몇 가지 추가 구현을 수행하고 싶습니다. . 그래서, 나는 [RoundTripOriginial]을 사용하고 있습니다. MSDN에서와 같이, 업데이트 된 객체와 함께 서버에 원래의 객체를 반환 할 것이라고 말합니다.

참고 : 원래 개체를 가져 오기 위해 데이터베이스 호출을하고 싶지 않습니다.

다음은 DomainService

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

에 내 샘플 구조,

[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는 '널'나를 반환

내가 여기서 뭔가를 놓친 거지.

제안/도움이 어떤 종류의 대단히 감사하겠습니다. 미리 감사드립니다.

답변

0

WCF Ria Services에서는 클래스 자체가 아닌 RoundTripOriginalAttribute을 클래스 구성원에 배치해야합니다. 주로 서버 측 동시성 검사를위한 왕복 속성을 제공합니다.

+0

연관성이있는 컬렉션 속성에 특성을 넣으려고 할 때. "Association Members는 RoundTripOriginal로 표시 할 수 없습니다"라는 컴파일 오류가 발생합니다. – crazy9

+1

맞습니다. 그것은 "프리미티브"속성에 사용하기위한 것입니다. 연결은 "라운드 트립"될 수 없습니다. 대신 연결의 기본 속성에 RoundTripOriginalAttribute를 넣어야합니다. – mCasamento

+0

감사합니다. @mCasamento – crazy9

관련 문제