2009-09-30 7 views
0

Aidez-moi avec cet algorithme s'il vous plaît.aide avec linq à 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); 

pour ajouter son dynamique où les clauses à une requête LINQ ... op, sur le terrain, et les données sont toutes les chaînes qui viennent avec ajax partir d'une grille jquery. Le problème est qu'il me donne une erreur quand il essaie de faire l'opérateur Like ... cela fonctionne très bien avec l'opérateur égal.

+0

Ce qui semble être votre problème? Utilisez-vous déjà DynamicLinq? Les résultats sont-ils faux? –

+0

oui, j'utilise linq dynamique ... ça marche bien pour l'opérateur égal mais pas avec l'opérateur Like. – ignaciofuentes

+0

Cela vous donne-t-il une "UnknownErrorException"? Si ce n'est pas le cas, pouvez-vous publier l'exception complète obtenue? –

Répondre

0

Basé sur this page, ce qui suit devrait travailler pour vous:

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

j'ai couru quelques tests sur mes propres données, et il semble fonctionner très bien.