У меня есть SQL-таблица, построенная как древовидный список (родительский дочерний). Означает, что у вас есть rootId и childId. У каждой сущности есть ParentId. Если ParentId имеет значение null, этот элемент является корневым.
Вот пример иерархической архитектуры
- Fruit (1)
- TreeFruits (2)
- Apple (4)
- Bulb (5)
- SeaFruits (3)
- DeepSeaFruits (6)
- Sushi (9)
- Kraken (13)
- Shrimp (7)
- Fish (8)
- Vegetable (10)
- Carrot (11)
- Potato (12)
Вы можете видеть, что у каждого корневого элемента (номера 1 и 10) есть как минимум 1 дочерний элемент. Но глубинный размер элементов неизвестен.
Вот пример как выглядит таблица
------------
| Id* |<---
| | |
| ParentId |----
| Name |
------------
Моя задача — запросить (с помощью EntityFramework Core) RootId для данного фрукта. Конечно, я мог бы загрузить все сущности из базы данных и сделать это в памяти, но это не очень умно. У вас есть идеи, как я могу написать свой Linq, чтобы эта задача выполнялась в базе данных?