У меня довольно простой вопрос, на который я не могу найти ответ. У меня есть приложение Silverlight с Ria Services. В классе DomainService у меня есть метод обновления, как показано ниже:
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
}
Проблема в том, что свойство Name всегда пусто. Фактически каждое поле, кроме Id, имеет значения по умолчанию. Я пытался найти, как работает метод GetOriginal, но не могу найти никакой помощи. Мне кажется, что он пытается восстановить исходный объект на сервере, основываясь на изменениях, которые отправляются обратно с клиента на сервер.
Или, может быть, кто-нибудь знает лучший способ проверить, изменилось ли определенное свойство объекта во время обновления? Конечно, я могу сравнить его со значением в базе данных, но, похоже, мне следует избегать этого дополнительного вызова базы данных.
Любая помощь снова очень ценится: -)
EDIT:
Только что узнал о атрибуте RoundTripOriginal. Это, кажется, делает трюк. Неужели я единственный, кто считает, что RIA может быть немного лучше задокументирована?