обьекта на себя, обозначающая родителя.
Хочу в рамках дерева обьектов, поменять позицию двух обьектов.
но как то компактно не получается. Судя по всему, реструктуризацию всю в ручную делать.
Как правильно решается данная проблема ?
второе предложение не понял. ты про int ID или про ссылку на другой обьект в бд?
Чтобы сделать двусязный список. Мы должны хранить ID обьекта родителя, того же типа. это технически будет int?.
А почему список, а не дерево?🤔
Список это дерево с 1 веткой ), пока так проще.
Ну так вторую ветку то не получится добавить потом, если про бд речь
Ну это пока и не надо. Я хочу переместить красиво два обьекта в рамках 1 иерархии списка. Грубо говоря. элемент 3 и 4 поменять местами. но так чтобы потом элемент 5 ссылался на 3. А 4 элемент ссылался на 2
class Obj { [Key] int Id; Int? RodId; //id родителя } Obj one, Obj two получил из бд псевдокод db.RemoveById(one.Id); db.RemoveById(two.Id); (one.Id, two.Id) = (two.Id, one.Id) (one.RodId, two.RodId) = ... db.Add(one); db.Add(two); db.Save(); я бы так попробовал
ну или можно по-другому. поменять у них значения всех проперти, кроме ид родителя и собственного
Тогда нафига вам парент если это просто order position
EF удобно представляет обьект тогда. и перебирать просто.
дак parentID когда Id>0 == [Key] Id -1
с каких пор. нет. Мы можем 1 элемент назначить дочерним к 19
В целом идея рабочая спасибо. Почему то не подумал, что удаление, само восстанавливает структуру связи. Получилось в 3 этапа, удаление. востановление. Установка связей. Почему то начала не нравится идея проблемы с уничтожением первичного ключа. Так же чтобы не потерять данные, на всякий случай, загнал все в транзакцию.
Обсуждают сегодня