C# 保持类别中项目的计数

C# 保持类别中项目的计数,c#,.net,asp.net-mvc-3,entity-framework,C#,.net,Asp.net Mvc 3,Entity Framework,MVC新手,如果谷歌能快速回答这个问题,我深表歉意,如果能链接到解释这个问题的文章或例子,我将不胜感激 基本上,我有一个类别/子类别中的产品列表,并希望能够输出它们的列表以及每个子类别中的产品数量,例如: Computers - Laptops (4) - Tablets (9) - Netbooks (3) 我首先使用的是EF代码,我不知道如何最好地组织它。 我可以反复浏览我的产品列表,并对每一个产品进行计数,但这似乎效率低下。我还可以在模型中为每个子类别存储一个计数变量,并在每次

MVC新手,如果谷歌能快速回答这个问题,我深表歉意,如果能链接到解释这个问题的文章或例子,我将不胜感激

基本上,我有一个类别/子类别中的产品列表,并希望能够输出它们的列表以及每个子类别中的产品数量,例如:

Computers
 - Laptops  (4)
 - Tablets  (9)
 - Netbooks (3)
我首先使用的是EF代码,我不知道如何最好地组织它。 我可以反复浏览我的产品列表,并对每一个产品进行计数,但这似乎效率低下。我还可以在模型中为每个子类别存储一个计数变量,并在每次添加新产品时增加它


基本上,我正在寻找一种“最佳实践”方法来了解如何做到这一点,因此我可以从一开始就学习如何做到这一点。

您可以让数据库执行查询:

var model = db
    .Categories
    .Select(c => new MyViewModel
    {
        Name = c.Name,
        ProductsCount = c.Products.Count()
    })
    .ToList();

然后在视图中,您将在视图模型中显示名称和产品总数,以便在显示列表时能够显示此信息。

是的,这正是我在传统web表单项目中所做的事情(在数据库中使用存储过程而不是linq),但不确定如何创建它。谢谢