我無法弄清楚這一點。我有一個名爲Employee with和Id字段的表。該表還包含一個ManagerId字段,該字段具有指向員工ID字段的外鍵。當我將表作爲一個實體添加到實體數據模型中時,它會創建一個帶有EmployeeChildren集合元素和EmployeeParent元素的新Employee實體。我可以檢索所有員工,並將他們放入員工實體的新實例中。僱員實體將有許多孩子,每個孩子實體可以有許多自己的孩子,並且每個孩子都有一個指向其父母的指針。Linq to Entities - 從存儲過程中檢索具有「自我引用」的實體
我現在需要做的是使用存儲過程檢索這些員工的子集。現在,如果我搜索僱員John Doe,他有2個人,那麼存儲過程將返回3行。
僱員經理ID名稱
1空比爾
2 1簡
3 2李四
這裏是我的代碼做檢索:
using (var entity = new TimeEntryEntities())
{
var employees =
from E in entity.EmployeeSearch(search)
orderby E.Name
select E;
return employees.ToList<Employee>();
}
權現在,這個代碼返回3個獨立的實體。我怎麼能把它們組合成一個?
當您不使用存儲過程時,是否按預期工作?如果您直接使用LINQ查詢檢索單個員工,是否應該填寫「經理」和「報告」集合? – 2009-08-20 16:15:06
它確實有效,但它不會以我需要的方式回來。它將檢索該員工,該實體將擁有一個父實體。父實體將有父母和孩子......等等。我需要它從頂級父母開始,而不是在較低級別的孩子。我希望這是有道理的。 – 2009-08-20 16:35:02