Где используется общий анонимный делегат, в данном случае Func.
Что это означает: «при условии, что пользователь возвращает логическое значение», или «при условии, что пользователь предоставляет критерии для определения, должен ли я выбрать этого пользователя».
С лямбда-выражением вам нужно только один раз определить переменную, которую вы "дали".
Основной синтаксис:
variableName => expression
в этом случае имеем
u => (expression)
где u - пользователь, а (выражение) - выражение, которое оценивается как логическое значение.
Where(u => (u.RoleID==1 || u.RoleID==2))
(который, как указал Роджер, когда я заканчивал этот пост, является правильным ответом)
выполнение AND или любого другого логического сравнения будет точно таким же
Where(u=> u.Name.Equals(userName) && u.Email.Equals(email))
Вы можете иметь любое выражение, единственное требование - возвращать логическое значение. Даже если выражение, которое игнорирует заданную вами переменную, подойдет.
Where(u=> true)
Это выберет всех пользователей, хотя, вероятно, бессмысленно демонстрирует структуру лямбда-выражения.
РЕДАКТИРОВАТЬ: не видел дополнительной информации, предоставленной редактором Роджера, который, вероятно, объяснил это лучше, чем я, пока я не сделал этот пост, извините за дублирование.