Entity Framework проблема сохранения отношений один ко многим - PullRequest
0 голосов
/ 26 июля 2010

Я копался в постах здесь и в Google и не смог найти ничего, что помогло бы мне решить проблему с сохранением дочерних сущностей на существующей сущности.

Допустим, у меня естькорзина покупок, в которой будут храниться элементы, это означает, что у меня есть сущность ShoppingCart, у которой есть коллекция сущностей ShoppingCartItem.

В моем контроллере я проверяю, существует ли ShoppingCart, и извлекаю сущность, если она есть.Если нет, то это новый объект (состояние объекта помечено как добавленное).Затем я продолжаю, добавляя элементы в уже существующую коллекцию (если какие-либо элементы уже там). Моя проблема сейчас - ТОЛЬКО когда я сохраняю изменения в уже созданной ShoppingCart: она добавляет НОВУЮ корзину покупок в базу данных с существующимипредметы И новые предметы ...

Итак, если у меня есть одна Корзина для покупок и двое детей, и я теперь добавляю 3 новых элемента, я получаю 2 записи ShoppingCart в таблице ShoppingCart и 7 записей ShoppingCartItem ...

Я проследил код, и объект ShoppingCart помечается как Добавленный, как только новый ShoppingCartItem добавляется с помощью AddObject () ...

Как я могу предотвратить это?

Большое спасибо,

Стефан

1 Ответ

1 голос
/ 27 июля 2010

Самое простое решение - восстановить существующую ShoppingCart с подробными сущностями, а затем не выполнять никаких вызовов AddObject. Вместо этого вызовите метод SaveChanges (), это запишет изменения в базу данных без создания новой сущности ShoppingCart.

...