1

我在我的 ASP.NET 4.5 Web 项目中使用实体框架。我有一张产品表,每个产品都有其类别和子类别。一个类别可能没有子类别。

餐桌产品

  • ID
  • 姓名
  • 类别ID
  • subcategory_id
  • 日期

表类别

  • 类别ID
  • parent_category_id

如果类别有parent_category_id = 0,则它是父类别,否则它是同一张表上另一个类别的子类别。

我想在Entity Framework中创建一个查询,以按日期从最新到最旧检索每个子类别的前 5 个产品。

最后,我想建立表格来显示每个子类别的前 5 个最新产品。

一个产品只能属于一个子类别。

这类问题的答案只有一个类别,但没有子类别。我的问题是针对特定数据库结构的。谢谢。

4

2 回答 2

4

这是使用前 5 名产品的代码lembda expressions

YourEntities DBContext = new YourEntities();

List<Category> categories = DBContext.categories.Where(d=> d.category_id!=null).ToList();
List<Product> prodcuts = null;
foreach (var item in categories)
{
    prodcuts = DBContext.Products.Where(d => d.category_id== item.category_id)
                 .OrderByDescending(d => d.date)
                                 .Take(5)
                                 .ToList();
}
于 2013-07-30T08:39:17.413 回答
3
var q= context.Categories
   .Where( c => c.parent_category_id != 0  )
   .Select( c=> new {
        c.categoryName,
        Products = c.products.OrderByDesc(p => p.DateUpdated)
            .Take (5)
            .Select( p => new {
                p.name,
                p.price
            })
    });
于 2013-07-30T08:36:05.023 回答