2009-11-03 2 views
0

c를 필요로 내 데이터베이스에 대한 다음과 같은 설정을 가지고 : 음속 2.1 도움 #

Category Table (Fields: CategoryID(PK), Title); 

Menu Table (Fields: MenuID(PK) CategoryID(FK), Title); 

Page Table (Fields PageID(PK), MenuID(FK), Title, Content, CreatedOn); 

지금 한 페이지 나 특정 카테고리가 보유하고 얼마나 많은 페이지 알고 싶어요. 나는 SubSonic을 사용하여 이러한 쿼리를 작성하는 방법을 알지 못합니다. 내가 지금하고 있어요 방법은 다음과 같이이다 :

int count = 0; 
DAL.MenuCollection coll = new DAL.MenuCollection().WHERE(DAL.ObjectMenu.Columns.CategoryID, _catid); 

foreach(DAL.Menu item in coll) 
{ 

    DAL.PageCollection collTemp = new DAL.PageCollection().WHERE(DAL.Page.Columns.MenuID, _menuid); 
    count+= collTemp.Count; 

} 

이 작동하지만 하나의 문 내에서 그것을 쓸 수있는 더 좋은 방법이 아니다? 이것은 다소 나쁘다고 생각합니다.

나는 누군가가 올바른 방향으로 나를 가리킬 수 있기를 바랍니다. 고맙습니다. 친절 관련 문의 : 마크

답변

1

일부 조인이 필요하고 일부 검색 작업이 필요합니다. 이 모든 작업을 한꺼번에 처리하려면 조인을 사용하여 알아야 할 것을 쿼리에로드하고 루프를 통해 루프를 굴려 필요에 따라 구성합니다. 내가 강탈 비교 질수 있기 때문에 http://www.subsonicproject.com/docs/Simple_Query_Tool

+0

난 그냥 당신이 항상보기로 만들 수, 주석으로 내 대답을 추가 한 다음 바로 행의 수를 계산합니다 : 조인과 일반적으로 쿼리에 여기

더있어 반환 된 – RC1140