문제

Nullable이 가능한 ParentCategoryID 열이있는 자체 참조 테이블이 있습니다.

엔티티 디자이너에 테이블을 추가했을 때이 관계에 대해 두 개의 내비게이션 속성을 만들었고 하나의 부모 범주 (0 또는 1 NAV 소품)와 다른 하나는 하위 범주 ( * 많은 NAV 소품)를 지명했습니다.

내가 둘 이상의 깊이 깊숙이 갈 때를 제외하고는 모든 것이 잘 작동합니다. 더 깊은 레벨을 선택하지 않습니다.

따라서 모든 카테고리를 얻습니다 .Subcategories는 하위 범주 아래에서 범주를 얻지 못합니다.

내가 뭔가를 놓치고 있습니까? 내가 nhibernate에 붙어 있어야한다고 생각하기 시작했다. 더 깊은 수준이 게으른로드되어서는 안됩니까?

    return from c in _entities.ContentCategorySet.Include("SubCategories")       
           where c.ParentCategory == null
           orderby c.Importance, c.Title
           select c;
도움이 되었습니까?

해결책

그것이 제가 하위 범주 속성이 행동하는 것을 상상하는 방법입니다.

레벨 1

++ 레벨 2

++ 레벨 2

++ ++ 레벨 3

여기서 하위 카테고리 레벨 1의 속성은 레벨 2 항목 만 반환합니다. 그런 다음 레벨 3에 도달하려면 재귀 방법으로 연속 레벨 2 항목에 액세스 할 수 있습니다.

다른 팁

좋아, 문제의 적어도 일부는입니다

where c.ParentCategory == null

제거하면 더 깊은 레벨을 얻지 만 최상위에 하위 범주가 있습니다. 사실 후에는 필터링 할 수 있다고 생각합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top