我有一个名为categories的自引用表,其中有一个可以为空的parentcategoryid列。
当我将表添加到实体设计器时,它为此关系创建了两个导航属性,我命名了一个ParentCategory(零或1个导航道具),另一个命名为SubCategories(* many nav prop)。
一切都很有效,除非我超过一个级别,它不会提升到更深层次。
所以我得到了所有的Category.SubCategories但我没有得到子类别下的类别。
我错过了什么吗?开始认为我应该坚持使用NHibernate。不应该更深层次加载延迟?
return from c in _entities.ContentCategorySet.Include("SubCategories")
where c.ParentCategory == null
orderby c.Importance, c.Title
select c;
答案 0 :(得分:1)
这就是我想象SubCategories属性的行为方式。
等级1
++ Level 2
++ Level 2
++ ++ Level 3
Level 1的SubCategories属性仅返回Level 2项目。然后,为了达到3级,您将以递归方式访问连续的2级项目。
答案 1 :(得分:1)
好的,至少部分问题是
where c.ParentCategory == null
当我删除它时,我获得更深层次但后面的子类别在顶层。我想我可以在事后过滤掉它们。
答案 2 :(得分:0)