我无法理解这一点。我有一个名为Employee with和Id字段的表。该表还包含一个ManagerId字段,该字段具有指向Employee的Id字段的外键。当我将表作为实体添加到我的实体数据模型时,它使用EmployeeChildren集合元素和EmployeeParent元素创建新的Employee实体。我可以检索所有员工,并将他们放入Employee实体的新实例中。员工实体将拥有许多子项,每个子实体可以拥有许多自己的子项,每个子项都有一个指向其父项的指针。
我现在需要做的是使用存储过程检索这些员工的子集。现在,如果我搜索员工John Doe,他有2个人,那么存储过程将返回3行。
EmployeeID ManagerId Name
1 null Bill
2 1简
3 2 John Doe
以下是我的检索代码:
using (var entity = new TimeEntryEntities())
{
var employees =
from E in entity.EmployeeSearch(search)
orderby E.Name
select E;
return employees.ToList<Employee>();
}
现在,此代码返回3个独立的实体。我如何将它们组合成一个?
答案 0 :(得分:0)
这听起来像是在试图压缩层次结构,因此只返回一条记录。也许存储过程中的公用表表达式(CTE)可以帮助: Here is an alternate of a similar request:
另外another example with more detail(但您必须免费注册):
答案 1 :(得分:-1)
您应该只返回您感兴趣的实体.EF将自动为您检索相关实体。 如果我们没有使用自引用,这将更容易可视化,这个概念已经妨碍了。