Проблема не в выражении LINQ, а в приоритете оператора вычитания.Рассмотрим следующий пример:
int result = quantity - true ? 0 : otherValue;
Не удается скомпилировать по той же самой причине, Оператор '-' нельзя применить к операндам типа 'int' и 'bool' .Решение состоит в том, чтобы просто сгруппировать условный оператор в паренах:
int result = quantity - (true ? 0 : otherValue);
Итак, ваш пример должен компилироваться, добавляя парены вокруг всего вашего оператора условного оператора.