HierarchyID: получить всех потомков для списка родителей с помощью LINQ-to-SQL.C#

Место общения программистов C#
Ответить
Anonymous
 HierarchyID: получить всех потомков для списка родителей с помощью LINQ-to-SQL.

Сообщение Anonymous »

Мне нужно найти всех потомков для заданного списка родителей. Запрос (на простом SQL) был достаточно простым, но я не могу перевести его в LINQ-to-SQL.
SQL-запрос:

Код: Выделить всё

select child.id from GlobalDocumentClassification child
inner join GlobalDocumentClassification parent
on child.HierarchyId.IsDescendantOf(parent.HierarchyId) = CAST(1 AS bit) and
parent.Id in ('5bb9450f-3778-411d-bbf2-5a5775c70310')
Вот мой (некорректный) запрос LINQ:

Код: Выделить всё

var entityIds =
from child in Context.GlobalDocumentClassification
join parent in Context.GlobalDocumentClassification
on child.HierarchyId.IsDescendantOf(child.HierarchyId) equals true
where EF.Constant(documentClassificationIds).Contains(parent.Id)
select child.Id;
IDE жалуется на использование родительского элемента — я считаю, что это связано с тем, как необходимо структурировать запросы LINQ-to-SQL 🤔.
В этой статье SO более подробно описывается сторона проблемы SQL, но мне опять же нужно выразить свой запрос с помощью LINQ. Linq to SQL: как присоединиться без поля, т. е. декартово соединение
Ваша помощь очень ценится
[img]https://i.sstatic .net/itbum05j.png[/img]


Подробнее здесь: https://stackoverflow.com/questions/792 ... inq-to-sql
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»