Проблемы с компоновкой в ​​платформе сущности 4: сущность в настоящее время доступна только для чтения - PullRequest
2 голосов
/ 04 октября 2010

Использование WCF RIA Services и Entity Framework 4.

У меня есть 3 DTO: школа, штат, район. Государственный DTO имеет собственность района с составом. А Школа DTO имеет государственную собственность с составом и районную ассоциацию.

Идея состоит в том, что когда мы создаем / обновляем школу, мы также разрешаем пользователю вводить штат и район (который может быть существующим или новым).

При создании нового штата и округа все работает нормально. Но когда я создаю только новый район внутри существующего состояния, я получаю следующую ошибку: «Этот объект в настоящее время доступен только для чтения. Существует одно из следующих условий: вызван пользовательский метод, выполняется операция отправки или операции редактирования не поддерживаются для типа объекта "

1 Ответ

3 голосов
/ 21 марта 2011

Я столкнулся с этим сегодня и обнаружил, что моя ошибка была вызвана 2-й проблемой, описанной в сообщении об ошибке: «выполняется операция отправки».

Вот мой неверный код:

dim c as new Car()
myContext.Cars.add(c)
myContext.SubmitChanges()
c.Color = "Red"

Обратите внимание, что я неправильно изменил объект после вызова SubmitChanges. Хотя SubmitChanges происходит до того, как я изменяю свою сущность, SubmitChanges происходит асинхронно, поэтому нет гарантии, что изменения будут отправлены до того, как я изменю сущность.

Вот исправленный код:

dim c as new Car()
myContext.Cars.add(c)
c.Color = "Red"
myContext.SubmitChanges()
...