J'ai utilisé Dynamic Linq
dans mon application et, malheureusement, cela ne fonctionne pas. Voici mon exemple de code.Linq Querystring dynamique ne fonctionne pas avec les opérateurs mixtes avec contient
List<string> contains = new List<string>() { "Poland", "Ecuador" };
List<object> array = new List<object>();
array.Add("Austria");
array.Add("Eritrea");
array.Add(contains);
//this works
var data0 = Contact.GetContactsList().AsQueryable().Where("@0.Contains(outerIt.Country)", array);
//this does not work
var data = Contact.GetContactsList().AsQueryable().Where("Country.Equals(@0) OR it.Country.Equals(@1) OR @3.Contains(outerIt.Country)", array.ToArray());
J'ai une liste de contacts liés aux pays. Vous pouvez voir que j'ai utilisé des opérateurs mixtes i.e est égal et contient. Si contient est utilisé séparément alors cela fonctionne qui est correct. J'ai essayé de faire une nouvelle chose ici, en utilisant à la fois les opérateurs Equals et Contains est la même chaîne de requête. Je joins l'image am décrivant la sortie ou data0
et erreur lors du traitement pour obtenir data
Merci.
Lorsque vous avez créé tableau en tant que '' liste
On dirait une simple faute de frappe - '@ 3' devrait être' @ 2'. –