保持一个类别中的项目数

时间:2013-02-17 10:05:16

标签: c# .net asp.net-mvc-3 entity-framework

MVC的新手,如果快速谷歌会回答这个问题,请致以道歉,链接到解释此内容的文章或使用此示例的示例将不胜感激!

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

Computers
 - Laptops  (4)
 - Tablets  (9)
 - Netbooks (3)

我正在使用EF Code First,我不确定如何最好地组织它。 我可以遍历我的产品列表并获得每个产品的计数,但这似乎效率低下。我还可以在每个子类别的模型中存储一个count变量,并在每次添加新产品时递增它。

基本上,我正在采用'最佳实践'方法来了解如何做到这一点,所以我可以从一开始就学会这样做。

1 个答案:

答案 0 :(得分:3)

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

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

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