6
votes

Comment spécifier des noms de champ dynamiques dans une liste de linq où la clause?

Si vous créez un objet de filtrage contenant des critères pour Linq qui va normalement dans une clause Where Like this: xxx pré>

Comment correspondriez-vous au champ LINQ au nom de champ sans utiliser de grand Déclaration de cas? p>

 return from e in db.Employee
        where e.Salary < 40000
        select new IList<EmployeeViewModel> { Name= e.name, Salary= e.Salary };


0 commentaires

3 Réponses :


9
votes

Je suggère que vous ayez un coup d'œil à Query dynamique dans les exemples LINQ à SQL. Vous pouvez l'utiliser pour écrire des conditions dans "Texte simple", par exemple:

var employees = db.Employee.Where("Salary < 40000").Select(...);


2 commentaires

Maintenant c'est une réponse fantastique.


Ok, maintenant comment l'utiliser si vous avez une énumération en tant que valeur? Comme dans le Stackoverflow.com/q/7075816/185593



12
votes

Vous pouvez construire l'expression à la main, comme si: XXX


2 commentaires

Très agréable moyen d'ajouter des conditions.


Je reçois une erreur de compilateur lors de la tentative de mise en œuvre, jetez un coup d'œil à Stackoverflow .Com / Questions / 23787795 / Dynamic-Linq-Expression



4
votes

Je suis assez tard à ce parti, je me rends compte - Cependant, j'ai écrit du code que je pense satisfait à cela sans utiliser dynamiclinq, que j'ai trouvé mal soutenu et que je suis doté d'utiliser (au mieux). xxx

Ce code peut être utilisé ainsi: xxx


0 commentaires