Я работаю над приложением Silverlight.Он использует службы WCF для передачи объектов EF 4 Self Tracking туда и обратно от клиента к серверу.
Методы чтения работают нормально, чтобы обслуживать коллекции отслеживаемых объектов клиенту Silverlight из служб WCF.Даже базовые обновления работают правильно.Я могу изменить свойство «OfficeEntity» и передать его в качестве параметра методу обновления WCF.Проблема, с которой мы сталкиваемся, заключается в том, что при обновлении одной из коллекций сущности мы получаем ошибку десериализации, приведенную ниже.Например, если «OfficeEntity» имеет свойство навигации «Locations», которое является коллекцией «LocationEntity», и мы добавляем новое «Location» в свойство «Locations» и сохраняем его, мы получаем исключение десериализации.
officeEntity.Locations.Add (new Location () {LocationName = "Test 1"});
client.SaveAsync (officeEntity);
Сведения об исключении:
Средство форматирования выдало исключение при попытке десериализации сообщения: произошла ошибка при попытке десериализации параметра: OfficeEntity.Сообщение InnerException> было «Произошла ошибка при десериализации объекта типа Entities.OfficeEntity.Конечный элемент 'ObjectsAddedToCollectionProperties' из пространства имен> 'http://schemas.datacontract.org/2004/07/Entities' ожидается.Найден элемент 'b: AddedObjectsForProperty' из пространства имен> 'http://schemas.datacontract.org/2004/07/Entities'.'
Похоже, проблема в десериализации свойств отслеживания изменений.Любые идеи о том, что вызывает это или где я могу это исправить?
Спасибо, Джейсон