Изменение столбца с шаблоном «Идентичность» не поддерживается в службах RIA WCF - PullRequest
1 голос
/ 06 мая 2010

Я следовал пошаговому руководству по созданию вашего первого приложения WCF RIA Services от Microsoft и столкнулся с проблемой при попытке редактировать и обновить данные с помощью метода SubmitChanges () в контексте данных.

У обновляемой таблицы есть спецификация идентификации, установленная в SQL Server 2008 в столбце «Идентификатор курса». Однако первичный ключ является составной частью двух других полей.

При использовании SubmitChanges () приложение блокируется в браузере и представляет необработанное исключение. При обработке этого исключения мне удалось получить сообщение: изменение столбца с шаблоном «Идентичность» не поддерживается. Это относится к столбцу «CourseID».

Отключение спецификации идентификатора решает проблему, но мне нужен идентификатор с автоматическим увеличением. Чем это не поддерживается? Или куда я иду не так?

Ответы [ 3 ]

1 голос
/ 03 сентября 2010

Как указано в комментарии выше, вам необходимо установить StoreGeneraratedPattern в значение «Computed».

Хотя вы можете изменить это в конструкторе моделей, который изменяет значение в CSDL. Однако для его работы значение также должно быть изменено в SSDL. Единственный способ изменить это - изменить XML вручную.

Имейте в виду, что различные вещи, такие как «Обновление модели из базы данных», будут восстанавливать SSDL ... поэтому вам придется повторно применить изменения.

1 голос
/ 01 апреля 2011

Для решения этой проблемы есть обходной путь: добавьте атрибут [RoundtripOriginal] к соответствующему свойству в классе метаданных вашей сущности.

См. Ответ Джеффа Хэндли в этом обсуждении на форумах Silverlight:

Ошибка RIA WCF: Изменения включают столбец «Идентичность» DomainDataSource (столбец «Идентификация» не изменяется), РИА WCF не поддерживает

0 голосов
/ 07 мая 2010

Здесь виновата структура базы данных.

...