2

午後、次の行がnullの場合に無視する方法がわかりません

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 である可能性があります。常に必要なわけではないため、価格も null の場合があります。したがって、価格が null の場合、それらを使用する必要はありません。

どうもありがとう。

4

2 に答える 2

0

たとえば、twePrice が null でないことを確認します。

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

@thatuxguy、このようなものが必要だと思います。以下のコードは、twePrice が null の場合に条件を無視します。

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))

読みやすくするために、2 つに分割される場合があります。

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