0

午後、テキスト ボックスから bool 値を渡しています。true か false かを確認し、正しいコードタイプ (int) を追加して検索する必要があります。

例えば

if (hasASIN == true)
{
    int show = 5;
}
else {
    int show = 1, 2, 3, 4 (these are the other code types)
}

次に、LINQ ステートメントに where 句を追加する必要があります。

where a.codeType == show (need to have this maybe in a || (or) bit so i can use the other code types)

以下は私の既存のLINQコードです

 var query = 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 a.amzPrice >= priceFrom && a.amzPrice <= (priceTo)
             where a.amzLive == isLive 

             select new GetProducts
             {
                productid = Convert.ToInt32(t.id),
                sku = t.sku,
                title = t.title,
                tweprice = Convert.ToString(t.twePrice),
                stock = Convert.ToInt32(t.stock),
                asin = a.asin,
                amzprice = Convert.ToString(a.amzPrice),
                amzlive = Convert.ToBoolean(a.amzLive),
                lastupdated = Convert.ToDateTime(t.lastUpdated)
             };
  return query.ToList();

これで大丈夫だと思いますが、そうでない場合はお気軽にお尋ねください:) よろしくお願いします。

4

2 に答える 2

4

に変更int showIEnumerable<int> showます。次に、ifステートメントを作成できます

IEnumerable<int> show;

if (hasASIN == true)
{
     show = new[] {5};
}
else 
{
     show = new[] {1, 2, 3, 4};
}

var query = ....

クエリでは、次のようにすることができますwhere show.Contains(a.codeType)

于 2012-09-07T13:33:20.287 に答える
0

多くの検索の後、私は御馳走を働かせる答えを見つけました...

where (hasASIN == true && a.codeType == 5) || (a.codeType == 1 || a.codeType == 2 || a.codeType == 3 || a.codeType ==4)
于 2012-09-07T15:46:37.430 に答える