Вы должны сгруппировать boolean
s из-за выражения ?:
!См .:
var query = from item in db.Advances
where
(
CurrentConfiguration.currentLanguage == GeneralDefinitions.arabicSymbol
? item.eUser.name.ToLower().Contains(strSearchKey)
: item.eUser.englishName.ToLower().Contains(strSearchKey)
)
&& !item.isPaid
&& item.expectedPaymentMonth == dExpectedPayment.Month
&& item.expectedPaymentYear == dExpectedPayment.Year
&& item.advanceTypeId == (int)enumAdvanceType.AtOnce
select item;
Если вы не используете ()
, все выражения после item.eUser.englishName.ToLower().Contains(strSearchKey)
будут AND
с item.eUser.englishName.ToLower().Contains(strSearchKey)
и, наконец, вернут один результат! ТАКЖЕ Вы можете использовать отдельные выражения where:
var query = from item in db.Advances
where
CurrentConfiguration.currentLanguage == GeneralDefinitions.arabicSymbol
? item.eUser.name.ToLower().Contains(strSearchKey)
: item.eUser.englishName.ToLower().Contains(strSearchKey)
where !item.isPaid
&& item.expectedPaymentMonth == dExpectedPayment.Month
&& item.expectedPaymentYear == dExpectedPayment.Year
&& item.advanceTypeId == (int)enumAdvanceType.AtOnce
select item;