2

我有一个名为 categories 的自引用表,它有一个可以为空的 parentcategoryid 列。

当我将表添加到实体设计器时,它为此关系创建了两个导航属性,我将一个命名为 ParentCategory(零或 1 导航属性),另一个命名为 SubCategories(* many 导航属性)。

一切都很好,除了当我深入一层以上时,它不会进入更深的层次。

所以我得到了所有的 Category.SubCategories 但我没有得到子类别下的类别。

我错过了什么吗?开始认为我应该坚持使用 NHibernate。更深层次的不应该被延迟加载吗?

    return from c in _entities.ContentCategorySet.Include("SubCategories")       
           where c.ParentCategory == null
           orderby c.Importance, c.Title
           select c;
4

2 回答 2

1

这就是我想象 SubCategories 属性的行为方式。

1级

++ 2 级

++ 2 级

++ ++ 3 级

其中 Level 1 的 SubCategories 属性仅返回 Level 2 项目。然后要到达第 3 级,您将使用递归方法访问连续的第 2 级项目。

于 2009-08-05T07:28:10.870 回答
1

好的,至少部分问题是

where c.ParentCategory == null

当我删除它时,我会得到更深的层次,但在顶层有子类别。我想我可以在事后过滤掉它们。

于 2009-08-05T08:13:09.950 回答