Member 13828340 Ответов: 1

Или условие не работает в предложении where...


публичный список<settingsviewmodel> ActivemoduleList(десятичный OrgID)
{
возвращение (из модуля в БД.lookupmodules
где модуль.OrganizationId == OrgID || модуль.OrganizationId == OrgID && модуль.IsActive == false || модуль.OrganizationId == OrgID && модуль.IsActive == false
выберите new SettingsViewModel
{
ModuleId = модуль.Moduleid следует,
ModuleName = модуль.Имя модуля,
DateCreated = модуль.Дата создания,
DateModified = модуль.DateModified,
statusName = модуль.Метод isactive,
SetDefault = модуль.Свойство isdefault,
}).Список();
}

Что я уже пробовал:

я пытаюсь решить, где условие, где только первое значение я выбрал .я хочу, чтобы каждое условие выбирало наше значение.

1 Ответов

Рейтинг:
1

OriginalGriff

Попробуйте заключить это выражение в квадратные скобки, чтобы оно явно говорило о том, что вы хотите: && имеет более высокий приоритет, чем || так

A || b && c
оценивается как
a || (b && c)
Не так как
(a || b) && c
Без скобок, чтобы явно сказать, что вы хотите, вы можете этого не получить!


Member 13828340

где ((модуль.OrganizationId == OrgID) || (модуль.OrganizationId == OrgID && модуль.IsActive == false) || (модуль.OrganizationId == OrgID && модуль.IsActive == false))

Richard Deeming

Возможно, я что-то упускаю, но это условие не имеет особого смысла.

В настоящее время у вас есть: A || (A && B) || (A && B)

Кроме дубликата (A && B) условие, вам даже не нужно || - если A является true, то в результате получается true, и если A является false, затем A && B является false, так что результат таков false.

Все ваше состояние может быть сведено к: where module.OrganizationId == OrdID