170 похожих чатов

Есть у EF core такая фича. у обьекта лежит ID

обьекта на себя, обозначающая родителя.
Хочу в рамках дерева обьектов, поменять позицию двух обьектов.
но как то компактно не получается. Судя по всему, реструктуризацию всю в ручную делать.
Как правильно решается данная проблема ?

15 ответов

29 просмотров

второе предложение не понял. ты про int ID или про ссылку на другой обьект в бд?

Сергей-(F L ) Автор вопроса
Oleg Harasment
второе предложение не понял. ты про int ID или про...

Чтобы сделать двусязный список. Мы должны хранить ID обьекта родителя, того же типа. это технически будет int?.

Сергей-(F L ) Автор вопроса
Oleg Safonov
А почему список, а не дерево?🤔

Список это дерево с 1 веткой ), пока так проще.

Сергей (F L )
Список это дерево с 1 веткой ), пока так проще.

Ну так вторую ветку то не получится добавить потом, если про бд речь

Сергей-(F L ) Автор вопроса
Oleg Safonov
Ну так вторую ветку то не получится добавить потом...

Ну это пока и не надо. Я хочу переместить красиво два обьекта в рамках 1 иерархии списка. Грубо говоря. элемент 3 и 4 поменять местами. но так чтобы потом элемент 5 ссылался на 3. А 4 элемент ссылался на 2

Сергей (F L )
Чтобы сделать двусязный список. Мы должны хранить ...

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(); я бы так попробовал

Oleg Harasment
class Obj { [Key] int Id; Int? RodId; //id родите...

ну или можно по-другому. поменять у них значения всех проперти, кроме ид родителя и собственного

Сергей (F L )
Список это дерево с 1 веткой ), пока так проще.

Тогда нафига вам парент если это просто order position

Сергей-(F L ) Автор вопроса
Sinner
Тогда нафига вам парент если это просто order posi...

EF удобно представляет обьект тогда. и перебирать просто.

Сергей-(F L ) Автор вопроса
Oleg Harasment
дак parentID когда Id>0 == [Key] Id -1

с каких пор. нет. Мы можем 1 элемент назначить дочерним к 19

Сергей-(F L ) Автор вопроса
Oleg Harasment
class Obj { [Key] int Id; Int? RodId; //id родите...

В целом идея рабочая спасибо. Почему то не подумал, что удаление, само восстанавливает структуру связи. Получилось в 3 этапа, удаление. востановление. Установка связей. Почему то начала не нравится идея проблемы с уничтожением первичного ключа. Так же чтобы не потерять данные, на всякий случай, загнал все в транзакцию.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта