2009-11-03 2 views
0

я получил следующие настройки для моей базы данных:SubSonic 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; 

} 

Это будет работать, но не есть лучший способ, чтобы написать его в одном заявлении? Это выглядит как-то плохо, я думаю,

Надеюсь, кто-то может указать мне в правильном направлении. Спасибо за чтение Kind внимания, с Отметить

ответ

1

Вам нужны некоторые соединения и затем некоторые после извлечения работы. Если вы хотите сделать это все сразу, загрузите запрос с тем, что вам нужно знать, с помощью объединений, а затем сверните петлю над ним, организуя его так, как вам нужно.

Вот еще на соединения и запросы в целом: http://www.subsonicproject.com/docs/Simple_Query_Tool

+0

Поскольку я не могу сравнить, чтобы ограбить я просто добавить свой ответ как комментарий, вы всегда можете создать его как представление, а затем просто посчитать количество строк возвращенный – RC1140