J'ai une longue requête LinqtoSQl dans laquelle plusieurs paramètres ne forcent pas l'utilisateur à spécifier quoi que ce soit. J'ai commencé à utiliser une instruction Select Case qui testerait plutôt ou pas la longueur d'une chaîne de paramètre> 0 ou si c'est un int> 0. Mais j'ai réalisé que je devrais tester chaque possibilité et créer des requêtes basées sur chacune. J'ai fait quelques recherches et ai couru à travers un poteau dans lequel la personne répondant au poteau disait pour nier une partie de la requête utilise ||. Après avoir fait plus de recherche (et réalisé avec de petites compétences en C#, j'ai || le OU conditionnel), j'ai réalisé que cela ne m'aiderait pas.LINQTOSql Paramètre manquant question
Je suppose que ce que je veux faire est quelque chose comme
Dim r = From x in db.List _
(if firstName.Length < 1 then ignore query
else)where x.firstName = firstName _
(if lastName.Length < 1 then ignore query
else)where x.LastName = lastName _
Select x
Je knw il doit y avoir une meilleure façon que IfElse'ing mon chemin à travers ce ... j'étais sur le point de faire des trucs funky avec un StringBuilder, mais je ne suis pas sûr que ce serait le « feu », à savoir:
Dim sb as New StringBuilder
sb.Append("Dim r = From x in db.List _")
If firstName.Length < 1 then
sb.Append("Where x.firstName = firstName")
ughh, s'il vous plaît me dire qu'il ya une meilleure façon ...
Merci pour votre aide!
Je suppose que je dois vous traduisez pour moi ... J'aime cette idée, mais ... J'ai essayé Dim requête Comme IQueryable (de la liste) = db.List query.Where (x => x.firstName == prénom) mais intellesense devient fou en essayant d'entrer quelque chose d'autre et puis j'obtiens des avertissements et des erreurs que x n'est pas déclaré ... Merci! – wali
Juste compris ... query.Where (Fonction (x) x.firstName = firstName) Silly VB !!! Merci un million !!! – wali