2009-04-11 8 views
1

SubMenus (메뉴와 동일한 유형이므로 SubMenus와 Items도 가질 수 있음)와 Items (다른 유형)를 가진 Menu 클래스가 있다고 가정하고 두 가지 테이블 (하나는 메뉴 용이고 다른 하나는 항목 용). LINQ to SQL을 사용하여 Menu 클래스 (모든 SubMenus 및 Items)의 전체 그래프를로드 할 수 있습니까?LINQ를 사용하여 SQL에서 전체 그래프로드하기

답변

0

SQL에서 관계를 올바르게 정의하면 LINQToSQL이 메뉴에 대한 단일 쿼리와 함께 모든 메뉴/항목을 다시 제공해야합니다. 그러나 이것은 다시 그래프로 사용하지 않고 메뉴의 열거 (관련 메뉴 및 항목 포함)로 사용합니다. 이 열거를 반복하고 그래프를 직접 구성해야합니다.

한편

, 당신이 뭔가를 할 수 있습니다

var roots = db.Menus.Where(m => !m.SubMenus.Count == 0); 

그런 roots은 기본 메뉴 모음이 될 것입니다. 이것은 그래프 분석 알고리즘을 수행하지 않고 GUI 구성 요소를 구성하기 위해 위에서 아래로 이동하려는 경우에 충분할 수 있습니다.

+0

DataContractSerializer를 사용하여 전체 그래프를 XML 파일로 serialize하려는 경우 모든 개체를로드해야한다고 생각합니다. LoadOptions를 어떻게 든 열심히로드 할 수 있습니까? – mrtaikandi

+0

요소 대신 그래프 구조를 직렬화하려면 실제 그래프를 구성해야한다고 생각합니다. 열거 형에서 공유 메뉴에 대한 부모/자식 속성에 요소가 중복됩니다. DBML을 확인하십시오. 관계가 이미 열심히로드되어있을 수 있습니다. – tvanfosson

+0

요소를 직렬화하려고합니다. – mrtaikandi

관련 문제