У меня есть таблица типа:
Steps
- id
- name
- parendId
parentId
указывает на id
в той же таблице.
Основная проблема в том, что у меня есть 3 уровня вложенности ...
Я хочу вывод, подобный этому:
step: {
id: 1,
name: 'step 1'
childs: [
{
id: 2
name: 'child lvl 1',
childs: [
{
id: 3,
name: 'child lvl 2'
childs: [...]
}, ...
]
}, ...
]
}
Так что в моем приложении у меня есть что-то вроде этого:
var parents = _apiDbContext.StepResult
.ToList();
foreach (var parent in parents) {
var childs = _apiDbContext.StepResult
.Where(s => s.StepParent == parent.Id)
.ToList();
foreach (var child in childs) {
var childsLvl2 = _apiDbContext.StepResult
.Where(s => s.StepParent == child.Id)
.ToList();
// ... One more level
}
}
Это минимальный код, например, если я делаю некоторые ошибкипожалуйста, дайте мне знать.
Так что можно сделать это с помощью одного запроса или некоторой "магии" в ядре .net.
Это прекрасно работает, но убивает производительность ... Так что любой советбудет полезно.
Спасибо!