如何将此Linq查询转换为Lambda表达式

时间:2011-03-19 13:53:51

标签: asp.net linq

        foreach (lc_ShoppingCart sc in shQuery)
        {
            //Decrement the Product Table's Total Remaining row with the quantity
            var ProductInventoryQuery = (from pr in db.lc_ProductInventories
                                         join c in db.lc_ColorTables on pr.Color equals c.Color
                                         join s in db.lc_SizeTables on pr.Size equals s.Size
                                         where pr.ProductID == Convert.ToInt32(sc.ProductID)
                                         where pr.Color == c.Color
                                         where pr.Size == s.Size
                                         select pr).First();
            ProductInventoryQuery.Quantity = ProductInventoryQuery.Quantity - sc.Quantity;
        }

1 个答案:

答案 0 :(得分:1)

可能是这样的:

var ProductInventoryQuery = 
       db.lc_ProductInventories.Where(w => w.ProductID == Convert.ToInt32(sc.ProductID))
         .Join(db.lc_ColorTables, p => p.Color, ct => ct.Color, (p, ct) => new { ProdInv = p, ColorTables = ct })
         .Join(db.lc_SizeTables, p => p.Size, st => st.Color, (p, st) => new { ProdInv = p, SizeTables = st })
         .First();