【问题标题】:Write a complex Linq2SQL query编写一个复杂的 Linq2SQL 查询
【发布时间】:2015-07-13 14:16:02
【问题描述】:

我有以下数据

类别

  • 类别名称
  • 类别 ID

产品

  • 产品ID
  • 产品名称
  • 类别 ID

物品

  • 物品ID
  • 项目名称
  • 产品ID

查询将是什么,以便我将获得多个列表,即

ListOfCategory 包含 CategoryName 和 ListOfProduct

ListOfProduct 包含 ProductName 和 ListOfItems

ListOfItems 包含 ItemName 和 ItemID

 var cats = (from g in CMP.tblCategories
                        join proc in CMP.tblProducts
                        on g.CategoryID equals proc.CategoryID
                        join item in CMP.tblItems
                        on proc.ProductID equals item.ProductID
                        select new { Cat = g.Name, Pro = proc.Name, Itm = item.Name, ItmID = item.ItemID });

我知道这是错误的,所以请帮助我

【问题讨论】:

    标签: c# asp.net-mvc linq linq-to-sql


    【解决方案1】:

    您可以在 Linq 中使用子查询来简化您的要求。

    //获取包含所有详细信息的项目列表

    var Items = (from g in CMP.tblCategories
                            join proc in CMP.tblProducts
                            on g.CategoryID equals proc.CategoryID
                            join item in CMP.tblItems
                            on proc.ProductID equals item.ProductID
                            select new { Category = g.Name, ProductName = proc.Name, ItemName = item.Name, ItemID = item.ItemID });
    
    //Group by ProductName  to get a list of ProductName , List<Items>
    
     var Products  = (from i in Items
                       group i by i.CategoryName into g
                      select new { CategoryName = g.Key, 
                             Products = (from p in Items
                                        group p by p.ProductName into Productgroup
                                         select new {ProductName = Productgroup.Key,              Items = Productgroup})
    }).ToList();
    

    【讨论】:

      猜你喜欢
      • 2014-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-17
      • 2014-12-02
      • 2012-11-30
      • 1970-01-01
      相关资源
      最近更新 更多