Любителям SQL (оракле), можно ли перевести этот запрос в LINQ?
Есть большое подозрение, что нет, хотя может как то извратится можно, чтобы не сильно медленно было?
Никогда еще на попадалась подобная конструкция
SELECT * FROM "WorkflowGroups"
START WITH "Guid" IN (
SELECT g."Guid" FROM "TerminalConfigWorkflowGroup" t
INNER JOIN "WorkflowGroups" g ON t."WorkflowGroupGuid" = g.""Guid""
WHERE t."TerminalConfigGuid" = {0})
CONNECT BY PRIOR "Guid"" = "ParentGroupGuid"
Проблема в том, что у постгреса другой синтакс и везде в коде linq.
Когда у мелкомягких что-то другое - фу, проклятый мелкософт, не по стандартам делает.
Когда у немелкомягких что-то другое - крутые фичи, нестандартно мыслят и делают. А мелкософт опять обосрался - не смог повторить у себя, чтобы было не медленно.
Спасибо, только ничего не понял
Единственное это, что в принципе было и так понятно (вызывать 'внутренний' запрос в цикле)
var subset = new List<DispositionPossibility>();
foreach (var disp in query.OrderBy(x => x.ParentCode).ToArray())
{
if (!disp.ParentCode.HasValue)
subset.Add(disp);
else
break;
}
А как же сакральное DBA-шное "отдать всю работу СУБД"? Вы что, запросы по полстраницы не любите? Их же так приятно дебажить и искать в них ошибки!
вызывать 'внутренний' запрос в цикле
-----
Так СУБД и не должны содержать средств для работы с деревьями.
То, что в оракле что-то слепили для этого на уровне языка - на то оно и оракле...
ничего не понял
-----
Там где-то в ответах был предложен упрощенный вариант рекурсивной выборки.
Рабочий или нет - не знаю, не проверял.
То, что в оракле что-то слепили
В постгресе тоже есть аналог, но опять останется sql
Там где-то в ответах был предложен упрощенный вариант рекурсивной выборки.
В болтовне может и есть но не на примере. Или не заметил, надо еще раз глянуть.
А чем она будет лучше SQL?
------
Ну так не пользуй СКЛ - пользуйся процедурой как таблицей.
опять привязка к СУБД
------
Это - да, но оно изолированно...
пользуйся процедурой как таблицей
не не, лучше уж твоим путем
https://michaelceber.medium.com/implementing-a-recursive-p...
голый скл прямо в коде
Как то не хочется, хоть и более эффективно. Хотя вроде уровень вложенности небольшой.

