2009-09-30 114 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 + "\")"; 

我跑我自己的数据一些测试,它似乎很好地工作。