1

我从不同的类中分别获取购物车数量,如下所示。我想从列表中包含的数量中减少购物车数量。那么如何在我的查询中包含它。任何人请建议我。

//int quantityinshoppingcart = classes.ShoppingCart.checkingQuantity(CustomerId,ItemId);


//Binds the data to the repeater control
rptcontrol.DataSource =   from p in l_List
      select new
      {
        ItemId = p.ItemId,
        ItemName = p.ItemName,
        Quantity = p.Quantity,                                                        
        //I want quantity as (Quantity = p.quantity - quantityinshoppingcart),
      };
      rptcontrol.DataBind();  
4

3 回答 3

5

您可以let在查询中使用关键字:

var q = from p in l_List
        let quantityInShoppingCart = MethodThatGetsThisQuantity(p.ItemId)
        let computedQuantity = p.Quantity - quantityInShoppingCart
        select new { ItemId = p.ItemId,
                     ItemName = p.ItemName,
                     Quantity = computedQuantity 
                   };
于 2013-02-18T12:02:15.997 回答
1

你可以试试这个,如果 l_List 完全加载就可以了(即,如果它试图在访问数据源时运行查询,它可能无法工作)。

//Binds the data to the repeater control
rptcontrol.DataSource =   from p in l_List
                                        select new
                                        {
                                            ItemId = p.ItemId,
                                            ItemName = p.ItemName,
                                            Quantity = p.Quantity - SampleProject._classes.ShoppingCart.checkingQuantity(CustomerId,p.ItemId)                                                
                                        };
于 2013-02-18T12:01:45.980 回答
1

您是否尝试在 Linq Expression 中包含您的 quantityinshoppingcart 计算?像这样 ?

rptcontrol.DataSource =   from p in l_List
      select new
      {
        ItemId = p.ItemId,
        ItemName = p.ItemName,
        Quantity = p.Quantity - SampleProject._classes.ShoppingCart.checkingQuantity(CustomerId, p.ItemId),                                                        
        //I want quantity as (Quantity = p.quantity - quantityinshoppingcart),
      };
      rptcontrol.DataBind();

根据购物车和 l_List 的相对大小,以及访问购物车内容的成本,您可能希望在绑定期间使用预构建的 Dictionary 来快速访问购物车中的数量。

希望这会有所帮助

于 2013-02-18T12:02:59.150 回答