Ответ 1
Конечно.
result = Session.All<MyClass>()
.Where(mc => mc.Col.Equals(category.ToString()) && (!flag || mc.FLAG));
Вы можете определить логику перезаписи, создав матрицу допустимых результатов true
:
▼ mc.FLAG ► flag
true false
true valid valid
false invalid valid
Здесь вы видите, что условие действительно, если flag
является ложным (оба равны true
) или mc.FLAG
- true
.
Я бы также посоветовал сначала выполнить проверку флага, так как это лучший исполняющий предикат. Это может помешать второй проверке, если первые результаты будут ложными:
result = Session.All<MyClass>()
.Where(mc => (!flag || mc.FLAG) && mc.Col.Equals(category.ToString());