.Where(product => productPrices.IsNullOrEmpty() ||
(
product.PProduseCuDimensiuni!.Count > 0 || product.PProduseCuDimensiuni != null
? product.PProduseCuDimensiuni.Any(dimension =>
dimension.PretRedus > 0
? dimension.PretRedus >= Convert.ToDecimal(productPrices![0]) && dimension.PretRedus <= Convert.ToDecimal(productPrices[1])
: dimension.Pret >= Convert.ToDecimal(productPrices![0]) && dimension.Pret <= Convert.ToDecimal(productPrices[1])
)
: product.PretDeBazaRedus > 0
? product.PretDeBazaRedus >= Convert.ToDecimal(productPrices![0]) && product.PretDeBazaRedus <= Convert.ToDecimal(productPrices[1])
: product.PretDeBaza >= Convert.ToDecimal(productPrices![0]) && product.PretDeBaza <= Convert.ToDecimal(productPrices[1])
)
)
我已经得到了查询的这一部分,它检查价格是否落入较低价格和较高价格的范围内(
productPrices
)。 productPrices
的格式为 [lowerBound,upperBound]
。我对每个尺寸有不同的价格。如果产品有 Pret
和 PretRedus
与 0
不同,则应选择折扣后的产品。如果产品没有尺寸,则应检查PretDeBaza
和PretDeBazaRedus
。如果 PretDeBazaRedus
为 0,则应采用 PretDeBaza
,否则如果 > 0,则采用 PretDeBazaRedus
。对于产品具有尺寸的部分,一切正常。如果产品没有尺寸,则条件无法检查底价。为什么?
好吧,我认为在顶层你应该有一个
&&
而不是 ||
此外,在集合论中,任何陈述对于空集的所有元素都为真,因为不存在该陈述为假的元素。