Entity Framework HierarchyId Временные решения

EF 5.0

Я работаю над прототипом для совместного тестирования иерархической структуры и структуры сущностей. У меня есть следующая схема:

Create Table dbo.Employee
(
   EmployeeId int identity not null,
   Name nvarchar(100) not null,
   Node hierarchyid not null,
   NodePath as Node.ToString() persisted,
   Level AS Node.GetLevel() persisted,
   ManagerNode as Node.GetAncestor(1) persisted,
   ManagerNodePath as Node.GetAncestor(1).ToString() persisted
);

Alter Table dbo.Employee
    Add Constraint EmployeePK Primary Key NonClustered (EmployeeId);

Go

--Enforce Hierarchy
Alter Table dbo.Employee
    Add Constraint EmployeeManagerNodeNodeFK Foreign Key (ManagerNode) References Employee(Node);
Go

Create Unique Clustered Index EmployeeDepthFirstIndex on dbo.Employee(Node);

Go

Create NonClustered Index EmployeeBreathFirstIndex on dbo.Employee(Level, Node);

Go

Из моего прочтения, тип данныхВ настоящее время поддерживается в EF, но некоторые предлагают обходные пути, такие как создание вычисляемых столбцов (Node.ToString ()), которые я сделал выше.

Есть ли способ настроить EF так, чтобы он распознавал отношения Родитель / Дочерний, чтобы я мог эффективно иметь коллекцию подчиненных? например

Employee.Subordinates

Единственное, о чем я могу думать, - это создать столбец ManagerId с FK, но тогда я эффективно храню иерархию в двух местах.

Спасибо за любую помощь!

Ответы на вопрос(2)

Ваш ответ на вопрос