Я работаю с большим набором иерархических данных в sql-сервере, смоделированным с использованием стандартного подхода EntityID, ParentID. Во всем дереве насчитывается около 25 000 узлов.
Мне часто нужно получить доступ к поддеревьям дерева, а затем получить доступ к связанным данным, зависающим от узлов поддерева. Несколько лет назад я построил слой доступа к данным на основе табличных функций, используя рекурсивные запросы для получения произвольного поддерева, учитывая корень node поддерева.
Я думаю об использовании Entity Framework, но я не вижу, как запрашивать иерархические данные, например это. AFAIK в Linq нет рекурсивного запроса, и я не могу выставить TVF в моей модели данных сущности.
Является единственным решением для сохранения хранимых процедур? Кто-нибудь еще решил это?
Уточнение: на 25 000 узлов в дереве я имею в виду размер иерархического набора данных, а не что-то связанное с объектами или инфраструктурой Entity Framework.