0

午後、

価格が一致する場合は bool を返したいと思います。3 つの異なる価格を返していますが、lowprice と amzprice が同じかどうかを比較する必要があります。もしそうなら、私も戻る必要があります...

pricematched = true

以下は私の現在のクエリです。

 var query = from a in dc.aProducts
             join t in dc.tProducts on a.sku equals t.sku
             join lp in dc.LowestPrices on a.asin equals lp.productAsin
             orderby t.title
             select new GetLowestPrices
             {
                 productAsin = lp.productAsin,
                 sku = t.sku,
                 title = t.title,
                 oprice = Convert.ToString(t.tPrice),
                 lowprice = Convert.ToString(lp.price),
                 amzprice = Convert.ToString(lp.tAmzPrice),
                 lastupdated = Convert.ToDateTime(lp.priceDate)
            };
            return query.ToList();

すべての助けに感謝します。

4

3 に答える 3

0

代わりにjqueryを使用してこれを行うことにしました。

于 2012-08-28T15:52:29.617 に答える
0
select new GetLowestPrices
         {
             productAsin = lp.productAsin,
             sku = t.sku,
             title = t.title,
             oprice = Convert.ToString(t.tPrice),
             lowprice = Convert.ToString(lp.price),
             amzprice = Convert.ToString(lp.tAmzPrice),
             lastupdated = Convert.ToDateTime(lp.priceDate),
             pricematched = lp.price == lp.tAmzPrice
        };

ちなみに、価格の文字列はなぜですか?また:

return query.ToList();

リストを作成しなくても済む場合はreturn query、リストを作成してください。

于 2012-08-28T15:03:33.543 に答える
0

ブール値を既存のオブジェクトに追加できる場合は、以下のようにクエリに反映されます。

 var query = from a in dc.aProducts
         join t in dc.tProducts on a.sku equals t.sku
         join lp in dc.LowestPrices on a.asin equals lp.productAsin
         orderby t.title
         select new GetLowestPrices
         {
             productAsin = lp.productAsin,
             sku = t.sku,
             title = t.title,
             oprice = Convert.ToString(t.tPrice),
             lowprice = Convert.ToString(lp.price),
             amzprice = Convert.ToString(lp.tAmzPrice),
             lastupdated = Convert.ToDateTime(lp.priceDate),
             pricematched = lp.tAmzPrice >= lp.price    // This should do it
        };
        return query.ToList();

それ以外の場合は、セカンダリ クエリを使用してクエリの外で実行する必要があります。

var matchedItems = query.Where(x => x.amzprice >= x.lowprice);
于 2012-08-28T15:03:49.973 に答える