我正在使用亞音速2.1的項目工作。對於一個簡單的搜索查詢我下面的代碼:亞音速2.1:我瘋了嗎?
DAL.ItemCollection coll = new DAL.ItemCollection();
SubSonic.Select s = new SubSonic.Select();
s.From(DAL.Item.Schema);
s.Where("Title").Like("%" + q + "%").Or("Tags").Like("%" + q + "%").And("IsActive").IsEqualTo(true);
if (fid > 0)
{
s.And("CategoryID").IsEqualTo(fid);
Session["TotalSearchResults"] = null;
}
s.Top(maxitems);
//We'll get the recordcount before paged results
total = s.GetRecordCount();
s.Paged(pageindex, pagesize);
s.OrderDesc("Hits");
s.OrderDesc("Points");
s.OrderDesc("NumberOfVotes");
coll = s.ExecuteAsCollection<DAL.ItemCollection>();
現在的問題是,當我的FID(FilterId)越大則0時,類別ID過濾器不起作用。它擊中斷點沒有問題,但它沒有被過濾。它與LIKE查詢有關嗎?它完美的作品,如果我刪除if部分和當前s.where和更改查詢做到這一點:
s.Where("CategoryID").IsEqualTo(fid);
我懷念這裏的東西很重要?
親切的問候, 馬克
嘗試打印s.ToString()並查看獲取輸出的SQL。 – sparks 2010-02-15 04:03:27