У меня есть довольно простой вопрос, на который я не могу найти ответ. У меня есть приложение 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, но не нашел никакой помощи. Мне кажется, что он пытается перестроить исходный объект на сервере на основе изменений, которые отправляются обратно от клиента к серверу.
Или, может быть, кто-то знает лучший способ проверить, было ли определенное свойство объекта изменилось во время обновления? Конечно, я мог бы сравнить его со значением в базе данных, но мне кажется, что мне следует избегать этого дополнительного обращения к базе данных.
Любая помощь снова приветствуется: -)
РЕДАКТИРОВАТЬ: Мне кажется, что он пытается перестроить исходный объект на сервере на основе изменений, которые отправляются обратно от клиента к серверу.
Или, может быть, кто-то знает лучший способ проверить, было ли определенное свойство объекта изменилось во время обновления? Конечно, я мог бы сравнить его со значением в базе данных, но мне кажется, что мне следует избегать этого дополнительного обращения к базе данных.
Любая помощь снова приветствуется: -)
РЕДАКТИРОВАТЬ: Мне кажется, что он пытается перестроить исходный объект на сервере на основе изменений, которые отправляются обратно от клиента к серверу.
Или, может быть, кто-то знает лучший способ проверить, было ли определенное свойство объекта изменилось во время обновления? Конечно, я мог бы сравнить его со значением в базе данных, но мне кажется, что мне следует избегать этого дополнительного обращения к базе данных.
Любая помощь снова приветствуется: -)
РЕДАКТИРОВАТЬ: Только что узнал об атрибуте RoundTripOriginalAttribute. Кажется, это помогает. Неужели я единственный, кстати, думаю, что RIA может быть задокументировано немного лучше?