2009-09-30 117 views
0

請幫我一下這個算法。LINQ to sql幫助

var companies = companyrepository.GetAll().OrderBy(sidx + " " + sord).Skip(pageIndex * pageSize).Take(pageSize); 
string where = ""; 

if (op == "eq") 
    where = field + "=" + data; 
else if (op == "cn") 
    where = field + " LIKE '%"+data+"%'"; ///here lies my problem 

companies = companies.Where(where); 

其添加動態where子句中的LINQ查詢......運算,字段和數據來與從一個jQuery網格AJAX的所有字符串。

問題是,當它嘗試執行Like運算符時,它給了我一個錯誤...它對等號運算符工作得很好。

+0

什麼似乎是你的問題?你是否已經使用DynamicLinq?結果是否錯誤? – 2009-09-30 21:55:58

+0

是的,我正在使用動態LINQ ...它適用於等號運算符,但不適用於運算符。 – ignaciofuentes 2009-09-30 21:57:58

+0

它會給你一個「UnknownErrorException」嗎?如果沒有,那麼你可以發佈完整的異常嗎? – 2009-09-30 22:03:58

回答

0

基於this page,下面應該爲你工作:

if (op == "eq") 
    where = field + "=" + data; 
else if (op == "cn") 
    where = field + ".Contains(\"" + data + "\")"; 

我跑我自己的數據一些測試,它似乎很好地工作。