2010-06-29 2 views
0

"Category"[ID, Title] 및 상위/하위 테이블 "CategoryParent"[ID, CategoryID, ParentCategoryID]가 있는데, 여기서 many-to-many 트리는 조인 테이블의 ParentCategoryID 필드 부모/자식 테이블이 LINQ에서 참조되지 않았거나 잘못 되었습니까?

나는이 간단한 구조 루트 범주와 하위 범주 (A 조인 테이블에 ParentCategoryID 값으로 NULL이 카테고리 항목) 검색하는 데 사용하는 것입니다 생각 (부모 ID를 기준으로합니다.)

을 그러나, 없음 LINQ2SQL 문을 작성하여 조인 테이블의 부모 ID로 Category 객체 목록을 얻으려는 시도로 컴파일 할 수있는 항목이 생겼습니다.

나는 약간의 코드를 게시 하겠지만, 어느 것도 (a) 완전하거나 (b) 현명한 것은 아닙니다.

어떻게해야합니까? 테이블을 조인 내

은 다음과 같습니다

CategoryParent 
--- 
ParentCategoryID [int] (PK) 
CategoryID [int] FK 
CategoryParentID [int] FK 

내 데이터 (카테고리) 표는 다음과 같습니다

Category.CategoryID 1->* CategoryParent.CategoryID 
Category.CategoryID 1->* CategoryParent.ParentCategoryID 

내가 좋아하는 것 :

Category 
--- 
CategoryID [int] PK 
Title [nvarchar] 

두 관계가있다 NULL 또는 CategoryID를 제공하고이를 부모로 갖는 모든 Category 테이블 행을 되돌립니다.

+1

테이블의 예를 게시 한 다음 원하는 예를 게시 할 수 있습니까? – Babiker

답변

0

좋아, 글쎄, 내가 뭘 해야하는지 꽤 기본 조인은 컨텍스트 클래스에서 조인 개체에 의존하는 대신 LINQ를 사용하는 것 같습니다. 예 :

var props = from i in context.Prices 
    join e in context.PricingEntities on i.EntityID equals e.EntityID 
    join l in context.PricingEntityProperties on e.EntityID equals l.EntityID 
    join p in context.PricingProperties on l.PropertyID equals p.PropertyID 
    where i.InstanceID == instanceId 
    select p; 
관련 문제