title: WCF Ria Services ChangeSet.GetOriginal(): How does it work?
body: <p>I have a fairly simple question to which I cannot seem to find the answer for. I have a silverlight app with Ria Services. In the DomainService class I have an update method like below:</p>
  
  <pre><code>public void UpdateConversationState(ConversationState currentConversationState)
      {
          var original = ChangeSet.GetOriginal(currentConversationState);
          if (original != null)
              ObjectContext.ConversationStatesRepository.AttachAsModified(currentConversationState, original);
          else
              ObjectContext.ConversationStatesRepository.Attach(currentConversationState);
          currentConversationState.UpdDat = DateTime.Now;
          if(original.Name != currentConversationState.Name)
              //Do something extra
      }
  </code></pre>
  
  <p>The problem is that the Name property is always empty. In fact every field except for the Id has default values. I've tried searching for how the GetOriginal method works, but cannot find any help. It seems to mee like it tries to rebuild the original object on the server, based on the changes that are sent back from client to server.</p>
  
  <p>Or maybe anyone knows a better way to check if a certain property of an object has been changed during an update? I could off course compare it to the value in the database, but it seems like I should avoid this extra call to the database.</p>
  
  <p>Any help is again much appreciated :-)</p>
  
  <p>EDIT:
  Just found out about the RoundTripOriginalAttribute. This seems to do the trick. Am I the only one by the way that think RIA could be documented a little bit better?</p>