Не удается обновить составные данные с помощью wcf ria servics - PullRequest
1 голос
/ 27 октября 2011

Предположим, у меня есть сущность MyTab, которая имеет составное свойство MyList.WCF генерирует код для MyTab для обновления, например:

public void UpdateMyTab(MyTab currentMyTab) 
{          
    this.ObjectContext.MyTabs
                      .AttachAsModified(currentMyTab, 
                                        this.ChangeSet.GetOriginal(currentMyTab));
}

Когда изменились только составные данные, данные MyTab не изменились, затем отправьте изменения, я получу ошибку "Значение не может быть нулевым. \ R \ nParameterимя: оригинал. " потому что нет оригинала для MyTab.В наборе изменений будет 2 элемента: MyTab и MyList.

Как решить эту проблему?

1 Ответ

2 голосов
/ 27 октября 2011

Вы должны сначала проверить возвращаемое значение GetOriginal , если оно равно нулю, перед вызовом AttachAsModified . Если GetOriginal возвращает ноль, вам следует Присоединить сущность только к ObjectContext. Я не проверял его, но я бы обновил ваш метод следующим образом.

public void UpdateMyTab(MyTab currentMyTab) {          
  var original = this.ChangeSet.GetOriginal(currentMyTab);

  if (original != null) {
    this.ObjectContext.MyTabs.AttachAsModified(currentMyTab, original);
  }
  else {
    this.ObjectContext.MyTabs.Attach(currentMyTab);
  }
}
...