Это неверно, как отмечается в ошибке:
.Where(x => IsActiveVehicle())
Это создает новое выражение, содержащее ваше выражение.
Вы хотите фактически передать Expression<Func<>>
в.Where
.
var q = _context.vehicles
.Where(IsActiveVehicle())
.ToList()
Обратите внимание на вопрос / ответ, который вы связали, и вы увидите его.
Другой способ взглянуть на него:
.Where(x => IsActiveVehicle())
Означает следующее бессмысленное:
.Where(x => ((vehicle) => vehicle.type == "R" &&
vehicle.status != "E" &&
vehicle.deleted == false))
Однако это:
.Where(IsActiveVehicle())
Означает следующее, что имеет больше смысла:
.Where(vehicle => vehicle.type == "R" &&
vehicle.status != "E" &&
vehicle.deleted == false)