Может ли сущность быть выгружена из ObjectStateManager инфраструктуры сущностей? - PullRequest
2 голосов
/ 02 февраля 2011

Я использую Entity Framework с самопроверкаемыми объектами через WCF.

У меня есть 2 сущности, Customer и PriceMatrix с отношением «многие ко многим» (у клиента может быть много исторических ценовых матриц, и матрица может быть разделена между группой клиентов)

У клиента есть один PriceMatrix, который он обновляет и отправляет обратно на сервер.Сервер должен проверить, доступен ли этот PriceMatrix другим клиентам, прежде чем либо обновить его, либо продублировать, либо обновить дубликат.

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

"AcceptChanges не может продолжить работу, поскольку значения ключей объекта конфликтуют с другим объектом в ObjectStateManager. Убедитесь, что значения ключей являются уникальными, прежде чемвызывая AcceptChanges. "

Если я закомментирую свои чеки (и, следовательно, не загружу PriceMatrix), все будет работать нормально.

Что я действительно хочу сделать, так это после изучения его состояния выгрузить PriceMatrix и затемприкрепите обновленный PriceMatrix, полученный от клиента.

1 Ответ

2 голосов
/ 02 февраля 2011

В таком случае попробуйте использовать Detach метод ObjectContext. Это известная проблема в STE - AcceptChanges требует, чтобы STE с тем же ключом ранее не загружалось в контекст.

...