2

下午,如果以下行为空,我似乎无法弄清楚如何忽略

where ((double)t.twePrice >= priceFrom && (double)t.twePrice <= (priceTo))

正如您在下面的代码中看到的那样,当它是一个字符串时,我可以做到这一点。但我对价格有疑问。有人可以为我解释一下吗?

from a in dc.aboProducts
join t in dc.tweProducts on a.sku equals t.sku
where (string.IsNullOrEmpty(productSku) || productSku == t.sku)
where (string.IsNullOrEmpty(productAsin) || productAsin == a.asin)
where (string.IsNullOrEmpty(productName) || t.title.Contains(productName))
where (string.IsNullOrEmpty(productBrand) || t.brand.Contains(productBrand))
where ((double)t.twePrice >= priceFrom && (double)t.twePrice <= (priceTo))
select new GetProducts

更新:我基本上是在发送大量项目来搜索我的 MS SQL 数据库,根据字符串,其中一些可能为 NULL。价格也可能为空,因为并非一直都需要。所以如果价格为空,我不需要使用它们。

非常感谢。

4

2 回答 2

0

检查 twePrice 是否不为空,例如:

where (t.twePrice != null && (double)t.twePrice >= priceFrom && (double)t.twePrice <= (priceTo))

@thatuxguy,我想你需要这样的东西。下面的代码忽略 twePrice 为空的情况。

where (t.twePrice == null ? true : (double)t.twePrice >= priceFrom && (double)t.twePrice <= (priceTo))

祝你好运 !!

于 2012-09-03T16:20:59.777 回答
0

也许以下内容可能就足够了:

where ((priceFrom == null || (double)t.twePrice >= priceFrom) && (priceTo == null || (double)t.twePrice <= priceTo))

为了可读性,它可能分为两部分:

where (priceFrom == null || (double)t.twePrice >= priceFrom) 
where (priceTo == null || (double)t.twePrice <= priceTo)
于 2012-09-03T16:21:56.213 回答