1

我无法完全弄清楚这一点。我有一个名为 Employee 和 Id 字段的表。该表还包含一个 ManagerId 字段,该字段有一个指向 Employee's Id 字段的外键。当我将表作为实体添加到我的实体数据模型中时,它会使用 EmployeeChildren 集合元素和 EmployeeParent 元素创建新的 Employee 实体。我可以检索所有员工,并将它们放入完美的员工实体的新实例中。雇员实体将有许多子实体,每个子实体可以有许多自己的子实体,每个子实体都有一个指向其父实体的指针。

我现在需要做的是使用存储过程检索这些员工的子集。现在,如果我搜索比他高 2 人的员工 John Doe,存储过程将返回 3 行。

EmployeeID ManagerId 名称

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 个单独的实体。我怎样才能将它们组合成一个?

4

2 回答 2

0

听起来您正试图展平层次结构,因此只返回一条记录。也许存储过程中的公用表表达式 (CTE) 可以提供帮助: 这是类似请求的替代方案

还有另一个更详细的示例 (但您必须免费注册):

于 2009-08-20T16:44:04.743 回答
-1

您应该只返回您感兴趣的实体。EF 将自动为您检索相关实体。如果我们不使用自引用,这将更容易可视化,这个概念已经妨碍了。

于 2010-03-15T19:50:09.523 回答