第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 LINQ 獲取銷量較低的商品

使用 LINQ 獲取銷量較低的商品

C#
尚方寶劍之說 2021-10-31 19:10:55
我有 2 個對象(訂單和產(chǎn)品)和第三個(OrderDetail)將用作產(chǎn)品和訂單之間的“導(dǎo)航”。我正在嘗試構(gòu)建一個視圖來顯示銷量較低的產(chǎn)品。為此,我正在“查詢”對象 OrderDetail 并將結(jié)果保存在視圖模型中,以便稍后在視圖中使用。模型:public class Product{  public int ProductID { get; set; }  public string CodProduct { get; set; }  public string Nome { get; set; }  (...)  public ICollection<OrderDetail> OrderDetails { get; set; }}public class Order{  public int OrderID { get; set; }  (...)  [BindNever]  public ICollection<OrderDetail> OrderDetails { get; set; }}public class OrderDetail{  public int OrderDetailId { get; set; }  public int OrderId { get; set; }  public int ProductID { get; set; }  public int Quantity { get; set; }  public decimal UnitPrice { get; set; }  public virtual Product Product { get; set; }  public virtual Order Order { get; set; }}視圖模型:public class ProductSoldViewModel{    //Data from the Product    public string ProductCode { get; set; }    public string ProductName { get; set; }    //Data from the OrderDetail    public int Qty { get; set; }}控制器:public IActionResult LSProducts(){   List<ProductSoldViewModel> model = new List<ProductSoldViewModel>();   model = _context.OrderDetail            .GroupBy(od => od.ProductID)            .Select(o => new ProductSoldViewModel            {                ProductCode = o.Select(s => s.Product.CodProduct).FirstOrDefault(),                ProductName = o.Select(s => s.Product.Nome).FirstOrDefault(),                Qty = o.Sum(s => s.Quantity)            })         .OrderBy(od => od.Qty)         .ToList();   return View(model);}使用此代碼,我只能獲得訂單中銷售量較低的產(chǎn)品。但我需要得到所有的產(chǎn)品,即使是那些從未售出的產(chǎn)品。你能給我一些關(guān)于我該怎么做的建議嗎?
查看完整描述

1 回答

?
慕桂英3389331

TA貢獻2036條經(jīng)驗 獲得超8個贊

如果需要獲取所有產(chǎn)品,則應(yīng)查詢產(chǎn)品表:


public IActionResult LSProducts()

{

   List<ProductSoldViewModel> model = new List<ProductSoldViewModel>();


   model = _context.Product

            .Include(a => a.OrderDetails)

            .Select(o => new ProductSoldViewModel

            {

                ProductCode = o.CodProduct,

                ProductName = o.Nome,

                Qty = o.OrderDetails.Sum(s => s.Qty)

            })

         .OrderBy(od => od.Qty)

         .ToList();


   return View(model);

}

為了避免空異常,您可能需要將以下構(gòu)造函數(shù)添加到您的模型中:


public class Product

{

  public Product()

  {

     OrderDetails = new HashSet<OrderDetail>();

  }


  (...)


  public ICollection<OrderDetail> OrderDetails { get; set; }

}


查看完整回答
反對 回復(fù) 2021-10-31
  • 1 回答
  • 0 關(guān)注
  • 174 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號