Comment créer des expressions Linq pour des classes agrégées? Laissez-moi vous expliquer avec un exemple de ce que j'essaie de faire. Dites, je veux trouver tous les employés avec salaire pas égal à 50000 et voici la structure de classe.Expressions Linq et classes d'agrégat
Employee e1 = new Employee { Name = "Jane", PDetail = new PayDetail { Salary = 100000 } };
Employee e2 = new Employee { Name = "Joe", PDetail = new PayDetail { Salary = 50000 } };
emps.Add(e1);
emps.Add(e2);
//I started doing it this way and this code DOES NOT compile
var parameter = Expression.Parameter(typeof(PayDetail));
var where = Expression.NotEqual(Expression.Property(parameter, "Salary"), Expression.Constant(50000));
var pred = Expression.Lambda(where, parameter);
var query = Enumerable.Where(emps, (Func<PayDetail, Boolean>)pred.Compile());
EDIT: Toute aide à la question nulle (comme indiqué dans les commentaires)? Merci
Mais alors comment puis-je obtenir les détails des employés aussi bien pour une condition comme « Les employés qui ont le nom de Jane et le salaire de 100000 »? – DotnetDude
@DotnetDude vérifier mes modifications. –
Wow, ça marche! J'ai regardé beaucoup en ligne avant de poster ceci. Pouvez-vous me diriger vers une ressource Linq en ligne qui s'intéresse aux arbres d'expression et aux éléments avancés? Je ne suis pas vraiment sûr de la façon dont vous avez travaillé. Merci – DotnetDude