我在ASP.NET 4.5 Web项目中使用Entity Framework。我有一个产品表,每个产品都有其类别和子类别。类别可能没有子类别。
表产品
表类别
如果类别有parent_category_id = 0
,则它是父类别,否则它是同一个表中另一个类别的子类别。
我想在实体框架中创建一个查询,以便按日期从最新的子类别到最旧的子类别检索每个子类别的前5个产品。
最后,我想构建表格,显示每个子类别的前5个最新产品。
产品只能属于一个子类别。
这类问题的答案有一个类别,但没有子类别。我的问题是针对特定的数据库结构。感谢。
答案 0 :(得分:3)
以下是使用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();
}
答案 1 :(得分:2)
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
})
});