Как правильно сохранить коллекцию в сущности? - PullRequest
0 голосов
/ 23 марта 2011

У меня есть какой-то объект с EntityCollection внутри. Если я просто добавлю новую сущность, все будет хорошо. Код, который делает это здесь:

Context.ApplyChanges()
Context.SaveChanges()

Но если я пытаюсь обновить сущность, у меня появляется следующее сообщение:

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

Даже если использовать одни и те же объекты коллекции. Я имею в виду, что в коллекции не может быть реальных одинаковых объектов, поскольку они сохраняются в базе данных, если они новые. Но! Если я пытаюсь применить один и тот же код к отдельным объектам в коллекции, они сохраняются, но снова, если я пытаюсь применить его к объекту (контейнеру), у меня появляется эта ошибка.

Спасибо за помощь

Ответы [ 2 ]

0 голосов
/ 23 марта 2011

Я подозреваю, что вы что-то пропустили в своей модели или в схеме таблицы.Это то, что я ожидал бы, если бы первичный ключ модели ожидался автоматически, но код вашей таблицы / модели не определяет его таким образом.Тогда у вас будут все первичные ключи для объекта в коллекции, установленные на ноль, и вы получите нарушение первичного ключа при попытке вставить второй объект.

0 голосов
/ 23 марта 2011

Вы пытались получить объект, который вы хотите изменить, из Context, изменив его соответствующим образом и сохранив изменения?Если да, не могли бы вы привести более подробный пример?

...