У меня есть приложение, которое сначала использует код Entity Framework. Я пытаюсь написать свой слой доступа к ресурсам. У меня есть несколько объектов, которые все имеют отдельные таблицы базы данных и много объектных отношений. Может кто-нибудь указать мне современный пример методов CRUD со связанными объектами? Все, что я нашел, использует более старую версию (я использую DbContext, а не ObjectContext и т. Д.), И у меня возникают проблемы при написании этого самостоятельно.
Например, в настоящее время я работаю над объектом, имеющим отношения родитель-потомок с самим собой. Я пытаюсь написать метод Create. Если я использую context.Objects.Add(newObject)
, то все дочерние объекты также меняют свое состояние на Добавленное, что означает, что дублирующиеся дочерние объекты добавляются. Поэтому я попытался перебрать все дочерние элементы и прикрепить их к контексту, но затем все дочерние элементы, которые ранее не существовали, не добавляются в базу данных, и генерируется исключение DbUpdateException.
Есть ли общий способ, которым я могу присоединить все связанные сущности и сделать их состояния правильными? Буду признателен за любую помощь, вы можете дать мне. Спасибо!
Edit:
Я попытался явно загрузить дочерние элементы, используя Load()
, а затем добавить исходный объект. К сожалению, это вызвало исключение, потому что родительский комментарий содержал дочерний элемент в своем списке дочерних элементов, но parentID существующего дочернего элемента еще не был обновлен.